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
| Dim stcolonne As Long
Dim z As Long
Dim Q As Double
Dim A
Dim Lig As Long
For i = 11 To 34 'les listbox
For z = 115 To 137 'les textbox
Select Case i
Case 11 To 16
Select Case z
Case 115 To 120
A = Me("ListBox" & i).Text 'valeur de la listbox
stcolonne = Colonne 'je stock la valeur de la colonne trouvé précédament dans le code car dans la zone graphique du diagramme j'écrit des 1 qui vont me servir de condition dans mes boucles et pour cela j'ai besoin de la colonne de départ de la tâche
If Application.CountIf(Range("A39:A45"), "=" & A) <> 0 And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
'si A est déjà écrit sur la feuille, je recherche la ligne ou il est écrit
Ligne = Application.Match(A, Columns(1), 0)
Q = CDbl(Me.Controls("TextBox" & z).Value) ' J'incrémente la valeur de la TextBox qui correspond à la listbox du dessus
compteur = 0
Lig = Range("A36").End(xlUp).Row ' je cherche la ligne ou la tâche est écrite pour vérifier les cellule qui ont des 1 et je fais une boucle pour écrire les quantités
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
Colonne = stcolonne
ElseIf Application.CountIf(Range("A39:A45"), "=" & A) = 0 And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
'c'est la même chose qu'en haut mais cette fois-ci A n'est pas sur la feuille et je dois l'écrire
Range("A45").End(xlUp).Offset(1, 0) = A
Ligne = Range("A45").End(xlUp).Row
Q = CDbl(Me.Controls("TextBox" & z).Value)
compteur = 0
Lig = Range("A36").End(xlUp).Row
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
End If
End Select
Le code est répété 3 fois pour les trois plage de la feuille
Case 17 To 26
Select Case z
Case 121 To 129
A = Me("ListBox" & i).Text
Colonne = stcolonne
If Application.CountIf(Range("A87:A128"), "=" & A) <> 0 And A <> "" And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
Ligne = Application.Match(A, Columns(1), 0)
Q = CDbl(Me.Controls("TextBox" & z).Value)
Q = Q / TextBox113.Value
compteur = 0
Lig = Range("A36").End(xlUp).Row
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
ElseIf Application.CountIf(Range("A87:A128"), "=" & A) = 0 And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
Range("A128").End(xlUp).Offset(1, 0) = A
Colonne = stcolonne
Ligne = Range("A128").End(xlUp).Row
Q = CDbl(Me.Controls("TextBox" & z).Value)
Q = Q / TextBox113.Value
compteur = 0
Lig = Range("A36").End(xlUp).Row
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
End If
End Select
Case 27 To 34
Select Case z
Case 130 To 137
A = Me("ListBox" & i).Text
Colonne = stcolonne
If Application.CountIf(Range("A49:A83"), "=" & A) <> 0 And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
Ligne = Application.Match(A, Columns(1), 0)
Q = CDbl(Me.Controls("TextBox" & z).Value)
compteur = 0
Lig = Range("A36").End(xlUp).Row
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
ElseIf Application.CountIf(Range("A49:A83"), "=" & A) = 0 And A <> "" And Me.Controls("TextBox" & z).Value <> "" Then
Range("A83").End(xlUp).Offset(1, 0) = A
Colonne = stcolonne
Ligne = Range("A83").End(xlUp).Row
Q = CDbl(Me.Controls("TextBox" & z).Value)
compteur = 0
Lig = Range("A36").End(xlUp).Row
While Cells(Lig, Colonne) = 1 And compteur <= CDbl(TextBox113.Value)
Cells(Ligne, Colonne).Value = Q
compteur = compteur + 1
Colonne = Colonne + 2
Wend
End If
End Select
End Select
Next z
Next i |
Partager