Bonjour, de nouveau.
j'avance bien sur la collection qui répondait à ma demande précédente.
Pour valider le scénario de mon projet, j'ai fait un petit bout de code (je ne vise pas l'académie des sciences avec ça) avec un classe qui comprend juste 2 méthodes et une userform avec 2 boutons censés utiliser chacun une seules des deux méthodes.
le bouton lire fonctionne (normal, j'instancie dedans)
Pb le deuxième bouton ne fonctionne pas, ce que je vois bien dans les fenêtres execution et variables locales.
d'où ma question comment conserver et utiliser les variables d'une classe. autrement dit quel moyen pour que la portée des variables d'une classe soit au delà de la procédure qui la crée.
Il y a plein d'exemples très jolis mais avec une seule procédure qui travaille avec la classe.
petit détail : nomComplet c'est juste nom & prenom pour vérifier que j'ai bien compris property
dans la userform :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Sub BtnLire_Click()
'creation d'un classe nom
Dim NouvNom As cNom
Set NouvNom = New cNom
NouvNom.Nom = Usfcli.TxtNom
NouvNom.prenom = Usfcli.TxtPrenom
NouvNom.lire
End Sub
 
Public Sub BtnEcrire_Click()
 
' ça marche mais c'est une nouvelle instance
'Set NouvNom = New cNom
'If NouvNom Is Nothing Then
'   MsgBox "Variable non initialisée."
'Else
'   MsgBox "Variable initialisée."
'End If
'NouvNom.ecrire
 
NouvNom.ecrire 'ça marche pas:
'il ne retourve pas la classe : message "objet requis"
End Sub
et dans la usform :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Property Get Nomcomplet() As String
Nomcomplet = mPrenom & " " & mNom
End Property
 
'### méthodes ###
Public Sub lire()
Sheets(1).Range("A1").Value = Nomcomplet
MsgBox "ça marche"
End Sub
 
Public Sub ecrire()
Sheets(1).Range("A2").Value = Nomcomplet
End Sub
 
Private Sub Class_Initialize()
MsgBox "classe initialisée"
End Sub
la usform elle meme :
Nom : usform.png
Affichages : 154
Taille : 6,4 Ko