Adapter un module de classe

Fermé
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 

1 réponse

bonjour a tous

personne pour m'aider a finaliser mon programme sniff sniff

bon tant pis

merci a vous

Cdlt
0