OVH Cloud OVH Cloud

Procédure répétitve

2 réponses
Avatar
Didier Novarin
Bonjour
J'ai sur un userform plusieurs labels une trentaine
Je souhaite lorsque je passe ma souris sur chacun d'eux, que la police
change de couleur,
je connais la procédure mousemove, mais comme il y a 33 labels, est-il
possible de simplifier cela par une boucle par exemple si les labels vont du
label1 au label33
Je vous remercie
Didier

2 réponses

Avatar
lSteph
Bonjour Didier,
Nommes un module de classe :
ClassLb
(via Fenêtre propriété)
Puis colles le code ci-après:
Cordialement .

LSteph

'''''*****dans ce module de classe***
Public WithEvents MonLabel As MSForms.Label


Private Sub MonLabel_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MonLabel.ForeColor = RGB(250, 100, 50)
End Sub
'''''*****dans code userform****
Private MesLb() As New ClassLb
Private Sub UserForm_Initialize()
Dim mlb As Control, I&
For Each mlb In Me.Controls
If TypeName(mlb) = "Label" Then
ReDim Preserve MesLb(0 To I)
Set MesLb(I).MonLabel = mlb
I = I + 1
End If
Next mlb
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Dim mlb As Control
For Each mlb In Me.Controls
If TypeName(mlb) = "Label" Then
mlb.ForeColor = RGB(0, 0, 0)
End If
Next mlb
End Sub

Private Sub UserForm_Terminate()
Dim I&
For I = 0& To UBound(MesLb)
Set MesLb(I) = Nothing
Next I
End Sub
'''''**********



"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai sur un userform plusieurs labels une trentaine
Je souhaite lorsque je passe ma souris sur chacun d'eux, que la police
change de couleur,
je connais la procédure mousemove, mais comme il y a 33 labels, est-il
possible de simplifier cela par une boucle par exemple si les labels vont
du label1 au label33
Je vous remercie
Didier



Avatar
Didier Novarin
Salut lSteph
Un très grand merci à toi !
Très bonne soirée
Didier



"lSteph" a écrit dans le message de news:

Bonjour Didier,
Nommes un module de classe :
ClassLb
(via Fenêtre propriété)
Puis colles le code ci-après:
Cordialement .

LSteph

'''''*****dans ce module de classe***
Public WithEvents MonLabel As MSForms.Label


Private Sub MonLabel_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MonLabel.ForeColor = RGB(250, 100, 50)
End Sub
'''''*****dans code userform****
Private MesLb() As New ClassLb
Private Sub UserForm_Initialize()
Dim mlb As Control, I&
For Each mlb In Me.Controls
If TypeName(mlb) = "Label" Then
ReDim Preserve MesLb(0 To I)
Set MesLb(I).MonLabel = mlb
I = I + 1
End If
Next mlb
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Dim mlb As Control
For Each mlb In Me.Controls
If TypeName(mlb) = "Label" Then
mlb.ForeColor = RGB(0, 0, 0)
End If
Next mlb
End Sub

Private Sub UserForm_Terminate()
Dim I&
For I = 0& To UBound(MesLb)
Set MesLb(I) = Nothing
Next I
End Sub
'''''**********



"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai sur un userform plusieurs labels une trentaine
Je souhaite lorsque je passe ma souris sur chacun d'eux, que la police
change de couleur,
je connais la procédure mousemove, mais comme il y a 33 labels, est-il
possible de simplifier cela par une boucle par exemple si les labels vont
du label1 au label33
Je vous remercie
Didier