Bonjour à tous,

Je travaille sur vba depuis quelques mois, je suis en entreprise et je l'utilise pour mon projet de fin d'études.

Je gère un planning, ligne par ligne soit chantier par chantier(30 en tout). A coté de chaque ligne un bouton ouvre un userform avec des dizaines de combobox qui permettent de remplir la ligne. Jusque là tout va bien, tout fonctionne.

En fait lorsque je lui fait saisir la première ligne le code tourne tout seul et dure quelques secondes(cela se voit au curseur qui alterne tout le temps entre la flèche blanche et le rond bleu).

Pour toutes les autres lignes, lorsque je lui fait saisir, la flèche blanche reste un moment avant qu'il ne démarre le code et ensuite il alterne flèche blanche et rond bleu toutes les 10 secondes!

Ce que je ne pige pas c'est que le code est exactement le même, la seule valeur qui change est mon "numeroligne1" car c'est lui qui définit la ligne dans laquelle saisir.


Et d'ailleurs après réflexion vu que c'est la seule différence j'ai essayé de mettre dans mon userform2 (celui de la ligne 2, donc) la meme valeur de z= numeroligne1 que dans mon userform1 et là ça fonctionne :s mais du coup je n'arrive à saisir que ma première ligne...

Je n'arrive pas à comprendre pourquoi ce paramètre, quand il est modifié, me fait ramer tout le programme.

mon code(celui de la ligne 2, pour la ligne 1 numeroligne1=6):
Code vb : 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Private Sub CommandButton1_Click()
 
 
numeroligne1 = 18
 
ActiveSheet.Cells(numeroligne1, 1) = chef1.Value
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 2).Clear
ActiveSheet.Cells(Z, 2) = "AF  " & Me.Controls("combobox" & y).Value
If Me.Controls("combobox" & y).Value = "" Then Cells(Z, 2) = ""
Z = Z + 5
y = y + 1
Loop Until y = 3
 
 
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 9) = Me.Controls("petitmateriel" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 5) = Me.Controls("personnel" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 6) = Me.Controls("personnelinterim" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 7) = Me.Controls("conducteur" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 8) = Me.Controls("materiel" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 10) = Me.Controls("materielloc" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 11) = Me.Controls("chauffeur" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 7
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 12) = Me.Controls("camion" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 7
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 13) = Me.Controls("os" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 7
 
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 14) = Me.Controls("camionloc" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 15) = Me.Controls("osloc" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 13
 
 
 
Z = numeroligne1
y = 3
Do
ActiveSheet.Cells(Z, 3) = Me.Controls("textbox" & y).Value
Z = Z + 5
y = y + 1
Loop Until y = 5
 
Z = numeroligne1 + 1
y = 1
Do
ActiveSheet.Cells(Z, 2) = Me.Controls("textbox" & y).Value
Z = Z + 5
y = y + 1
Loop Until y = 3
 
Z = numeroligne1
y = 1
Do
ActiveSheet.Cells(Z, 4) = Me.Controls("fourgonbox" & y).Value
Z = Z + 1
y = y + 1
Loop Until y = 7
 
 
 
Unload Me
End Sub

J'espère avoir été clair et vous remercie d'avance