User Form Procédures Initialize // Activate ne se réalisent pas
Bonjour,
Je suis novice en VBA; j'ai donc des lacunes de fond, mais je me débrouille..
Je développe des macros qui doivent me permettre de générer des factures en passant par la saisie des infos au travers de userform.
J'ai dans un module une macro qui lance un userform "UF_compteurs"
J'ai besoin qu'à son affichage (jsute avant ou juste après) un des "label" soit modifié.
J'ai donc placé une instruction pour ce faire dans une "private sub" UF_compteurs initialize().
J'ai testé avec la commande load UF_compteurs ou UF_compteurs.show dans mon module puis les évènements initialize et activate (j'ai écrit les 2 et les ai placé finalement dans le code de l'UF et dans le code de mon module) mais dans aucun des cas ces évènements ne se réalisent.
Quelqu'un sait-il me dire où est l'erreur? MERCI par avance
MODULE "principal"
Public Sub Saisie_relevés_compteur(L_RS, Compt_nb, compt_coul)
Dim SN As Variant
Dim tab_SN() As String
Dim col_dep, ligne_dep As Integer
repriseLAouJEmeSUISarreter = False
If repriseLAouJEmeSUISarreter Then GoTo reprise
SN = Sheets("Fac!").Cells(L_RS + 5, 9)
SN = Replace(SN, " ", "") 'on élemine les espaces potentiels
tab_SN = Split(SN, Chr(10)) 'on coupe tous les retours chariots pour obtenir les SN dans le tableau
For Each SN In tab_SN
SN = Replace(SN, " ", "")
ligne_dep = trouve("SN", CStr(SN)) 'cherche le numéro de série dans la feuille relevés compteurs, colonne SN
If ligne_dep = 0 Then 'si SN pas existant
col_dep = 2
For ligne_dep = 2 To 10000
If Cells(ligne_dep, 1) = "" Then Exit For
Next ligne_dep 'ligne_dep = 1ère ligne sans SN
Else
For col_dep = 2 To 4438 Step 4 'que les dates
If Cells(ligne_dep, col_dep) = "" Then Exit For 'cherche la première cellule date vide
Next col_dep
End If
UF_compteurs.Show
reprise: 'suite click JE valide dans UF
With Sheets("relevés compteurs")
Cells(ligne_dep, 1) = SN
Cells(ligne_dep, col_dep) = UF_compteurs.date_compt.Value
Cells(ligne_dep, col_dep + 1) = UF_compteurs.Compt_nb.Value
Cells(ligne_dep, col_dep + 2) = UF_compteurs.compt_coul.Value
Cells(ligne_dep, col_dep + 3) = UF_compteurs.scan_nb.Value + UF_compteurs.scan_coul.Value
End With
Unload UF_compteurs
Next SN
end sub
Private Sub UF_compteurs_activate()
UF_compteurs.UF_SN.Caption = "SN : " & SN
coucou2 = MsgBox("coucou3", vbOKOnly, "coucou3")
End Sub
Private Sub UF_compteurs_initialize()
UF_compteurs.UF_SN.Caption = "SN : " & SN
coucou2 = MsgBox("coucou4", vbOKOnly, "coucou4")
End Sub
************ dans code de l'UF* (complet ici) _ la sub Label6_Click se lance elle**********
Private Sub UF_compteurs_activate()
UF_SN.Caption = "SN : " & SN
coucou = MsgBox("coucou", vbOKOnly, "coucou")
End Sub
Private Sub UF_compteurs_initialize()
UF_SN.Caption = "SN : " & SN
coucou2 = MsgBox("coucou2", vbOKOnly, "coucou2")
End Sub
Private Sub Label6_Click()
UF_compteurs.Hide
repriseLAouJEmeSUISarreter = True
End Sub
End Sub
Bonjour,
les sub ...Initialize() ou ...Activate() ne s'utilisent pas avec le nom réel de l'userform, simplement:
Private Sub UserForm_Initialize() ou Private Sub UserForm_Activate()
A+
Merci beaucoup! C'était tellement simple..