Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 09-28-2013, 03:43 PM
skarden skarden is offline Userform label bordercolor not controllable if click label Windows XP Userform label bordercolor not controllable if click label Office 2003
Novice
Userform label bordercolor not controllable if click label
 
Join Date: Dec 2011
Location: Orlando, FL
Posts: 26
skarden is on a distinguished road
Question Userform label bordercolor not controllable if click label

I need a pop-up calendar for a Word macro at my workplace. I'm using Office 2010. They won't let me bring in the calendar control, change the registry, etc., so I am creating a calendar. I don't like the look of using buttons for the dates so I'm using labels. I want the date centered horizontally and vertically in its "square" and I wanted a border around the outside of the date's square when it was selected.

To get the date to center both horizontally in its "square" I used the double label box trick. That is, for the upper left date area, "d1", I created a 24 x 24 label called "d1Back" (which is the size of the date's square). I then created another label "d1" that I turned auto-size to True, set its value to "1", placed it on top of d1Back and then aligned their centers and middles.

Because a month can start on a Saturday I created 6 rows of 7 dates, or 42 pairs of "dX", "dXBack" lables.

I then wrote a click routine for each (obviously passing the correct # for each date). Here it is for the d1 pair:

Private Sub d1_Click()
Selected_Day ("1")
End Sub



Private Sub d1Back_Click()
Selected_Day ("1")
End Sub

Which Calls Selected_Day. This loops through all the "back" controls and makes the border white if it isn't the selected one, and blue if it is.

Private Sub Selected_Day(sD As String)
Dim i As Integer
For i = 1 To 42 'Need 42 boxes to account for month starting different days
If i = sD Then
Controls("d" & i & "Back").BorderColor = &HFF0000 'Blue
Else
Controls("d" & i & "Back").BorderColor = &HFFFFFF 'White
End If
Next i
End Sub

When I click on the inner box, that is, where the actual date is ("d1" in this example) it works fine. However, (and this is where my problem is), if I click on the "back" label, not only doesn't the border change that time, but it will never change again, even if I click the inner date control, until I close and reopen the form.

For example, for September 2013, the 1st was a Sunday and that is my "d1" box. If I click the "1" I get the blue border around d1Back. If I click the 2 of September 2nd I get the border around d2Back. If I click the 1 of September 1st, I again get the border around d1Back. However, if I ever click the d1Back portion of the square (and it doesn't matter if I had just clicked d1 or another date just before that) the label border won't change! Even if I click another date and then click the "1" of September 1 again!

I've used [F9] to stop when I get to the Selected_Day For loop and [F8] to step through it to make sure everything is firing properly, and it is.

I can't figure out for the life of me why I can't change the label's bordercolor once I've clicked on the label.

Help please,

Stuart

Last edited by skarden; 09-28-2013 at 03:47 PM. Reason: Spelling typo
Reply With Quote
  #2  
Old 09-29-2013, 07:27 PM
skarden skarden is offline Userform label bordercolor not controllable if click label Windows XP Userform label bordercolor not controllable if click label Office 2003
Novice
Userform label bordercolor not controllable if click label
 
Join Date: Dec 2011
Location: Orlando, FL
Posts: 26
skarden is on a distinguished road
Smile Solution Found

As the inside "date" box is smaller than the back box, if the back box was on top it should have blocked out the date. Likewise, if the inner date box was on top it doesn't overlap the bigger back box beneath it.

However, somehow clicking on the back box changes the "z" order. I found this code fixed the problem:

Private Sub MouseOver_Day(sD As String)
For i = 1 To 42
If i = sD Then
Controls("d" & i & "Back").BorderColor = &HFF0000 'Blue
Controls("d" & i & "Back").BackColor = &HFFFFC0 'Light Blue
Controls("d" & i).BackColor = &HFFFFC0 'Light Blue
Controls("d" & i & "Back").ZOrder (0) 'Brings Back to front
Controls("d" & i).ZOrder (1) 'Sends Date to back
Controls("d" & i & "Back").ZOrder (1) 'Brings Back to back
Controls("d" & i).ZOrder (0) 'Sends Date to front
Else
If Controls("d" & i & "Back").BorderColor <> &HFFFFFF Then 'White
Application.ScreenUpdating = False
Controls("d" & i & "Back").BorderColor = &HFFFFFF 'White
Controls("d" & i & "Back").BackColor = &HFFFFFF 'White
Controls("d" & i).BackColor = &HFFFFFF 'White
Controls("d" & i & "Back").ZOrder (1) 'Sends Back to Back
Controls("d" & i).ZOrder (0) 'Sends Date to Front
Application.ScreenUpdating = True
End If
End If
Next i
End Sub
Reply With Quote
Reply

Tags
bordercolor, label, userform



Similar Threads
Thread Thread Starter Forum Replies Last Post
third partry label prowler_sn Excel 0 03-09-2012 01:18 AM
Label Problem flustered Word 1 01-16-2012 09:24 PM
Label template Will Word 3 10-31-2011 10:46 PM
Userform label bordercolor not controllable if click label Label Creation speloquin Word 1 05-27-2011 03:08 PM
Userform label bordercolor not controllable if click label Label merge sulasno Mail Merge 2 03-16-2011 01:55 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 11:50 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft