Boucle while en VBA
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je découvre la boucle while en VBA et je ne comprends pas exactement comment ça fonctionne.
Voici mon code :
Je cherche à écrire en feuille 3 la valeur de la case de la feuille 1 si elle est non nulle et un chiffre sinon (qui est incrémenté chaque fois que l'on a une valeur non nulle).
J'obtiendrai donc quelque chose du style
0
0
valeur de la cellule (3,1)
1
1
1
1
valeur de la cellule (8,1)
2
2
2
2
etc ...
Quelqu'un peut-il m'aider ?
Merci !
Je découvre la boucle while en VBA et je ne comprends pas exactement comment ça fonctionne.
Voici mon code :
Dim a As String a = 0 Dim b As Long For b = 1 To 1000 Do While Sheets("Feuil1").Cells(b, 1).Value = "" Sheets("Feuil3").Cells(b, 1).Value = a Exit Do a = a + 1 Sheets("Feuil3").Cells(b, 1).Value = Sheets("Feuil1").Cells(b, 1).Value Loop Next End Sub
Je cherche à écrire en feuille 3 la valeur de la case de la feuille 1 si elle est non nulle et un chiffre sinon (qui est incrémenté chaque fois que l'on a une valeur non nulle).
J'obtiendrai donc quelque chose du style
0
0
valeur de la cellule (3,1)
1
1
1
1
valeur de la cellule (8,1)
2
2
2
2
etc ...
Quelqu'un peut-il m'aider ?
Merci !
A voir également:
- Boucle while en VBA
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Excel compter cellule couleur sans vba - Guide
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
4 réponses
bonsoir,
ce que j'ai compris
bonne suite
ce que j'ai compris
Const bmax = 30 Dim b As Long Dim a As Long a = 0 b = 1 If Sheets("Feuil1").Cells(b, 1).Value = "" Then a = 0 Sheets("Feuil3").Cells(b, 1).Value = a Else Sheets("Feuil3").Cells(b, 1).Value = Sheets("Feuil1").Cells(b, 1).Value End If For b = 2 To bmax If Sheets("Feuil1").Cells(b, 1).Value = "" Then If Sheets("Feuil1").Cells(b - 1, 1).Value <> "" Then a = a + 1 End If Sheets("Feuil3").Cells(b, 1).Value = a Else Sheets("Feuil3").Cells(b, 1).Value = Sheets("Feuil1").Cells(b, 1).Value End If Next b
bonne suite
Je suis désolé, je réouvre le sujet.
J'aimerais maintenant faire la même chose pour chacune de mais colonnes.
J'ai écrit ce code, mais il y a une erreur (1004)....
Merci encore !
J'aimerais maintenant faire la même chose pour chacune de mais colonnes.
J'ai écrit ce code, mais il y a une erreur (1004)....
Dim cmax As Long Dim c As Long cmax = 50000 For c = 1 To cmax Dim bmax As Long bmax = Sheets("Feuil1").Cells(65536, c).End(xlUp).Row Dim b As Long Dim a As Long a = 0 b = 1 If Sheets("Feuil1").Cells(b, c).Value = "" Then a = 0 Sheets("Feuil3").Cells(b, c).Value = a Else Sheets("Feuil3").Cells(b, c).Value = Sheets("Feuil1").Cells(b, c).Value End If For b = 2 To bmax If Sheets("Feuil1").Cells(b, c).Value = "" Then If Sheets("Feuil1").Cells(b - 1, c).Value <> "" Then a = a + 1 End If Sheets("Feuil3").Cells(b, c).Value = a Else Sheets("Feuil3").Cells(b, c).Value = Sheets("Feuil1").Cells(b, c).Value End If Next b Next c End Sub
Merci encore !