Procédure trop grande / boucle

Bonjour à tous,

Hier j'ai crée un code permettant de rentrer une quantité dans une Textbox. L'information de la Textbox devait s'incrémenter dans mon fichier, en fonction du numéro de la semaine (en colonne) et de l'article (en ligne). Voici mon code :

Private Sub CommandButton1_Click()

Dim semaine As Long, qte As String, article As String, commande As String

semaine = ComboBox1.Value

qte = TextBox1.Value

article = ComboBox2.Value

If article = "CJ 1/8" And semaine = "1" Then

Sheets("Stock ").Range("C3").Value = TextBox1.Value

commande = Sheets("A commander").Range("C3").Value

End If

If article = "CJ 1/8" And semaine = "2" Then

Sheets("Stock ").Range("D3").Value = TextBox1.Value

commande = Sheets("A commander").Range("D3").Value

End If

If article = "CJ 1/8" And semaine = "3" Then

Sheets("Stock ").Range("E3").Value = TextBox1.Value

commande = Sheets("A commander").Range("E3").Value

End If

Etc... jusqu'à que ma semaine arrive à "53"...

Mon code fonctionnait parfaitement pour le 1er article, je l'ai donc recopié pour les 53 semaines des 53 articles !

Au moment de l'exécution, j'ai eu le message d'erreur : Procédure trop grande. Ce qui ne m'étonne pas puisque ce sont plus de 11 000 lignes de code...

Je suis sur qu'il faut utiliser une boucle For, sauf que je bloque complètement. Voici ce que je tente de faire :

Dim semaine As Long, qte As String, article As String, commande As String, i As Integer, colonne As Long, x As Long, y As Long

i = ComboBox1.Value
qte = TextBox1.Value
article = ComboBox2.Value
i = semaine

For semaine = 1 To 53

If article = "CJ 1/8" And i = semaine Then
Sheets("Stock ").Cells(x + 1, y).Value = TextBox1.Value
commande = Sheets("A commander").Cells(x + 1, y).Value
End If

Next

Je vous remercie par avance de vos réponses qui me seront d'une grande aide !

Bonjour sans fichier pas sur d'être totalement exacte ; mais d'aprés ce que vous écrivez

Votre premier article commence ligne 3 et la semaine 1 commence colonne 3

Il n'y a donc pas besoin de " If " il faut utiliser vos variables correctement afin de trouver la bonne ligne et la bonne colonne à alimenter.

Dim semaine As Long, qte As String, article As String, commande As String
Dim NUMLIGNE As Long, NUMCOL As Long

semaine = ComboBox1.Value
qte = TextBox1.Value
article = combobox2.Value

NUMLIGNE = combobox2.ListIndex + 3 'Départ ligne 3 pour le premier Article
NUMCOL = ComboBox1.Value + 2   ' Départ colonne 3 pour semaine 1

Sheets("Stock ").Cells(NUMLIGNE, NUMCOL).Value = TextBox1.Value
commande = Sheets("A commander").Cells(NUMLIGNE, NUMCOL).Value

End Sub

Parfait, tout fonctionne correctement !

Merci beaucoup !!

Parfait, tout fonctionne correctement !

Merci beaucoup !!

J'ai de la chance votre explication et vos codes étaient suffisemment explicite.

Rechercher des sujets similaires à "procedure trop grande boucle"