Bonjour,

J'ai dans le cadre de mon projet de nombreux UserForm avec du code associé à presque tous les objets présents dessus.
J'ai parfois besoin pour un code associé à un objet de récupérer les valeurs des variables associées à un autre objet.

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Private Sub AfficherPersonnel_Click()
 
ListeP.Clear 'On vide la liste pour chaque nouvelle recherche'
 
Dim varId, idmaj As String
varId = id_vol.Text 'On r?cup?re dans une cha?ne de caract?re la valeur de l'id entr?e par le client'
idmaj = UCase(varId) 'On r?cup?re la valeur de l'id en majuscule au cas o? il ait ?t? rentr? en minuscule'
 
Dim nbvol, idpilote, idcopilote, idchefcabine, idstewarthotesse As Integer
nbvol = Sheets("vol").Range("vols").Rows.Count 'On r?cup?re le nombre de vol pr?sents dans la feuille des vols'
 
'On parcourt la liste des vols pour trouver une correspondance avec l'ID entr? par le client et r?cup?rer les id des pilotes, copilotes, chef de cabine'
For i = 1 To nbvol
If Sheets("vol").Cells(i + 1, 3) = varId Or Sheets("vol").Cells(i + 1, 3) = idmaj Then 'On teste la correspondance entre une cellule et la valeur choisie par le client'
idpilote = Sheets("vol").Cells(i + 1, 19)
idcopilote = Sheets("vol").Cells(i + 1, 20)
idchefcabine = Sheets("vol").Cells(i + 1, 21)
 
'On parcout la liste des pilotes, des copilotes et des chefsdecabines pour trouver ceux associ?s au vol'
Dim nbpilotes, nbcopilotes, nbchefcabine As Integer
nbpilotes = Sheets("pilote").Range("pilote").Rows.Count
nbcopilotes = Sheets("copilote").Range("copilote").Rows.Count
nbchefcabines = Sheets("chefcabine").Range("chefcabine").Rows.Count
 
'On r?cup?re les informations concernant le pilote'
For j = 1 To nbpilotes
If Sheets("pilote").Cells(j + 1, 1) = idpilote Then
ListeP.AddItem "Pilote : " & Sheets("pilote").Cells(j + 1, 2) & " " & Sheets("pilote").Cells(j + 1, 3)
End If
Next j
'On r?cup?re les informations concernant le copilote'
For k = 1 To nbcopilotes
If Sheets("copilote").Cells(k + 1, 1) = idcopilote Then
ListeP.AddItem "Copilote : " & Sheets("copilote").Cells(k + 1, 2) & " " & Sheets("copilote").Cells(k + 1, 3)
End If
Next k
'On r?cup?re les informations concernant le chefs de cabine'
For l = 1 To nbchefcabines
If Sheets("chefcabine").Cells(l + 1, 1) = idchefcabine Then
ListeP.AddItem "Chef de cabine : " & Sheets("chefcabine").Cells(l + 1, 2) & " " & Sheets("chefcabine").Cells(l + 1, 3)
End If
Next l
 
End If
Next i
 
'On parcourt la liste des donn?es de la fiche "assure" pour r?cup?rer les id des stewarthotesses sur le vol'
Dim nbassure As Integer
nbassure = Sheets("assure").Range("assure").Rows.Count
For m = 1 To nbassure
If Sheets("assure").Cells(m + 1, 2) = idmaj Then
idstewarthotesse = Sheets("assure").Cells(m + 1, 1)
MsgBox idstewarthotesse
'On parcourt ensuite la liste des stewarthotesses pour r?cup?rer les informatiosn concernant les stewarthotesses de ce vol
Dim nbsh As Integer
nbsh = Sheets("stewarthotesse").Range("stewarthotesse").Rows.Count
For n = 1 To nbsh
If Sheets("stewarthotesse").Cells(n + 1, 1) = idstewarthotesse Then
ListeP.AddItem "Stewart/Hotesse : " & Sheets("stewarthotesse").Cells(n + 1, 2) & " " & Sheets("stewarthotesse").Cells(n + 1, 3)
End If
Next n
 
End If
Next m
 
ListeP.Visible = True 'On affiche la liste'
 
End Sub
 
Private Sub CommandButton1_Click()
 
affichage_vol.Caption = "" 'On vide le label chaque fois qu'une nouvelle recherche est lanc?e'
ListeP.Clear 'On vide la liste pour chaque nouvelle recherche'
 
Dim varId, idmaj As String
varId = id_vol.Text 'On r?cup?re dans une cha?ne de caract?re la valeur de l'id entr?e par le client'
idmaj = UCase(varId) 'On r?cup?re la valeur de l'id en majuscule au cas o? il ait ?t? rentr? en minuscule'
 
Dim nbvol As Integer
nbvol = Sheets("vol").Range("vols").Rows.Count 'On r?cup?re le nombre de vol pr?sents dans la feuille des vols'
 
'On parcourt la liste des vols pour trouver une correspondance avec l'ID entr? par le client'
For i = 1 To nbvol
If Sheets("vol").Cells(i + 1, 3) = varId Or Sheets("vol").Cells(i + 1, 3) = idmaj Then 'On teste la correspondance entre une cellule et la valeur choisie par le client'
affichage_vol.Caption = "Vol : " & Sheets("vol").Cells(i + 1, 3) & " D?part : " & Sheets("vol").Cells(i + 1, 16) & " Arriv?e : " & Sheets("vol").Cells(i + 1, 17) & " Date : " & Sheets("vol").Cells(i + 1, 5) 'Affichage des caract?ristiques du vol'
affichage_vol.Visible = True
AfficherPassagers.Visible = True
AfficherPersonnel.Visible = True
Exit For 'On quitte la boucle For, on a bien affich? le vol recherch?'
End If
Next i
 
'id_vol.Text = "" 'On vide la zone de texte chaque fois qu'une nouvelle recherche est lanc?e'
 
End Sub
 
Private Sub UserForm_Initialize()
 
affichage_vol.Visible = False 'cache le label tant que rien n'a ?t? tap? par le client'
AfficherPassagers.Visible = False
AfficherPersonnel.Visible = False
ListeP.Visible = False
 
End Sub
Ici par exemple c'est le cas ENTRE AUTRES de nbvol.

Pouvez-me donner la façon la plus habituelle et logique de récupérer cette variable d'un code objet à l'autre car il me paraît très lourd de redéclarer à chaque fois la variable.

D'avance merci