Code VBA lent incompréhsensible
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:
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