dudulleray
-
Modifié par dudulleray le 11/11/2012 à 08:48
dudulleray -
11 nov. 2012 à 14:50
Bonsoir a toutes et tous, Forum bonsoir,
Dans mon UserForm baptiser (Gestion_du_listing), j'ai 26 Labels de A à Z
Quand je survol avec la souris ceci passe en Rouge puis dès que je quitte le Label repasse en Rose.
Je répète 26 fois un code voir ci-dessous a partir de 'Code a traiter' et dans le but
d'éviter du répétitif, j'ai créer un module de classe baptiser (ClsUsfLabels)
Je n'ai pas d'erreur, mais je n'arrive pas a modifier le (Code a traiter) pour que ça fonctionne correctement.
Si quelqu'un veux bien me donner un coup de main afin que je puisse finaliser mon programme, j'en serai ravi.
Je vous remercie d'avance pour votre savoir et votre aide.
Bonne soirée a vous et bon W-end
Cdlt Ray
Dans module UserForm initialise
Dim mesLabels() As ClsUsfLabels
Private Sub UserForm_Initialize()
Dim Ctrl As Object, i As Long
ReDim mesLabels(1 To Me.Controls.Count)
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "Label" Then
i = i + 1
Set mesLabels(i) = New clsUsfLabels
Set mesLabels(i).LabelX = Ctrl
Ctrl.Tag = i
End If
Next Ctrl
ReDim Preserve mesLabels(1 To i)
End Sub
'----------------------------
Dans module de classe ClsUsfLabels
Public WithEvents LabelX As msforms.Label
'----------------
Private Sub LabelX_Click()
MsgBox LabelX.Name & " cliqué : Tag : " & LabelX.Tag
End Sub
'----------------
Private Sub LabelX_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' Code a traiter ci-dessous original qui fonctionne
-------------------
Private Sub Label100_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
For i = 100 To 126
With Me
If .Controls("Label" & i).Name = "Label100" Then
.Controls("Label" & i).BackColor = RGB(255, 0, 0) 'Rouge
.Controls("Label" & i + 27).BackColor = &HFFFF80 'Turquoise
If .Controls("Label" & i + 27).Caption <> "" Then
.TextBox3.Value = .Controls("Label" & i).Caption & " : " & .Controls("Label" & i + 27).Caption
Else
.TextBox3.Value = ""
End If
Else
If .Controls("Label" & i).BackColor <> &H800080 And _
.Controls("Label" & i + 27).BackColor <> &HC0C0FF Then
.Controls("Label" & i).BackColor = &H800080 'Violet
.Controls("Label" & i + 27).BackColor = &HC0C0FF 'Rose
End If
End If
End With
Next i
End Sub
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.