Problème avec boucle for

Bonjour à tous.

J'ai un petit soucis avec mon code vba et je ne m'en sors pas...

Je voudrais, grâce à un userform remplir un tableau. Je voudrais que les infos saisies dans mes trois box du userform s'écrivent dans ma feuille excel à la première ligne vide. Je voudrais écrire dans les cases des colones A, D et E. (Les autres colones du tableau contiennent des formules.

Ce que j'essaie de faire donc, c'est que si la case A3 est vide, les infos s'écrivent en A3, D3 et E3. Et ainsi de suite.

J'ai essayé avec ce code

 derligne = Range("C" & Rows.Count).End(xlUp).Row 
    Cells(derligne + 1, 1).Value = CodeArtBox

Mais ca m'écrit dans la dernière ligne du tableau. J'imagine que ça prend en compte le fait que les cellules de mes autre colonnes ne sont pas vides...

Donc j'ai essayé avec une boucle For, mais ça me dit "erreur de complication : else sans if" .... Je ne comprends pas.

VOici le deuxième code testé

          For I = 2 To 100
    If Cells(I, 1) <> "" Then I = I + 1
    Else: Cells(I, 1).Value = CodeArtBox
    End If
    Exit For

Voilà, si quelqu'un pouvait me donner un petit coup de pouce sur ce coup là, ça serait top !

Merci d'avance

Salut,

Je ne vois pas le problème non plus mais essayes ce code qui a l'air de marcher

Sub test4()
For I = 2 To 100
    While Cells(I, 1) = ""
    Cells(I, 1).value = CodeArtBox
    Wend
Next I
End Sub

Bonjour JuliaM,

une piste, sans fichier, à l'aveuglette.

iRow calcule la première ligne libre de ta feuille.

'
iRow = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(iRow, 1) = Me.CodeArtBox1.Text
Cells(iRow, 4) = Me.CodeArtBox2.Text
Cells(iRow, 5) = Me.CodeArtBox3.Text
'

A+

Merci pour vos réponses.

nono78 a écrit :

Salut,

Je ne vois pas le problème non plus mais essayes ce code qui a l'air de marcher

Sub test4()
For I = 2 To 100
    While Cells(I, 1) = ""
    Cells(I, 1).value = CodeArtBox
    Wend
Next I
End Sub

Nono 78, ta solution me remplie toute les cases vides. Alors que je voudrais qu'une fois la case remplie la boucle s'arrête.

curulis57 a écrit :

Bonjour JuliaM,

une piste, sans fichier, à l'aveuglette.

iRow calcule la première ligne libre de ta feuille.

'
iRow = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(iRow, 1) = Me.CodeArtBox1.Text
Cells(iRow, 4) = Me.CodeArtBox2.Text
Cells(iRow, 5) = Me.CodeArtBox3.Text
'

A+

Curulis57, ta solution me remplie la dernière ligne du tableau, comme les deux bouts de code que j'avais essayé au début....

Je vous avoue que je ne comprends pas tout. J'ai repris le fichier qui a été crée par une autre personne donc il y a peut être une autre macro qui bloque... Ou je ne sais pas.

Ne trouvant pas de solution satisfaisante, je vais changer complétement de façon de procéder....

Merci beaucoup malgré tout pour vos réponses !!!!

Salut Julia,

sans fichier, ne nous demande pas la lune!

A+

Rechercher des sujets similaires à "probleme boucle"