[VBA] Problème de Loop
Résolu
Mus30
Messages postés
5
Statut
Membre
-
Mus30 Messages postés 5 Statut Membre -
Mus30 Messages postés 5 Statut Membre -
Bonjour à tous, j'ai un autre petit problème à vous soumettre.
J'ai un tableau avec plusieurs colonnes et lignes remplies.
L'idée est de créer une userform ou l'on rentrera un code.
Ensuite, la macro inserrera en A une colonne avec un titre prédéfini. Le but de la manoeuvre est de remplir chaque case de cette colonne jusqu'à la dernière ligne remplie.
Je débute, donc soyez gentil dans vos explications, merci :)
J'ai un tableau avec plusieurs colonnes et lignes remplies.
L'idée est de créer une userform ou l'on rentrera un code.
Ensuite, la macro inserrera en A une colonne avec un titre prédéfini. Le but de la manoeuvre est de remplir chaque case de cette colonne jusqu'à la dernière ligne remplie.
Je débute, donc soyez gentil dans vos explications, merci :)
Private Sub Validation_Click() VarNumérapport = Numérapport VarNumébat = Numébat Columns("A:A").Select Selection.Insert Shift:=xlToRight Range("A1").Select ActiveCell.FormulaR1C1 = "Numéro de rapport" Dim A As Integer Dim cellule1 As String Dim cellule2 As String A = 2 cellule1 = "H" & A cellule2 = "A" & A Do Until IsEmpty(Sheets("Test").Range(cellule1).Value = "") Range(cellule2) = VarNumérapport A = A + 1 Loop Renseignement.Hide End Sub
A voir également:
- [VBA] Problème de Loop
- Fruity loop - Télécharger - Édition & Montage
- Excel compter cellule couleur sans vba - Guide
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
4 réponses
Salut Mus30,
Si le titre de ton message est correct, tu as juste un problème de boucle ?
Si je suis dans le bon, j'ai pas analysé tout ton code car pour moi il y a déjà un problème dans la condition d'exécution de la boucle :
<
Do Until IsEmpty(Sheets("Test").Range(cellule1).Value = "")
Range(cellule2) = VarNumérapport
A = A + 1
Loop
>
Tu réalise un test 'IsEmpty' sur une valeur qui vaut forcément 'Vrai' ou 'Faux' :-)
Si le titre de ton message est correct, tu as juste un problème de boucle ?
Si je suis dans le bon, j'ai pas analysé tout ton code car pour moi il y a déjà un problème dans la condition d'exécution de la boucle :
<
Do Until IsEmpty(Sheets("Test").Range(cellule1).Value = "")
Range(cellule2) = VarNumérapport
A = A + 1
Loop
>
Tu réalise un test 'IsEmpty' sur une valeur qui vaut forcément 'Vrai' ou 'Faux' :-)
Je ne comprend pas trop ce que tu viens de me dire.
Tout ce que je veux, c'est que si il y a quelque chose dans la cellule H2, il me mette ce que j'ai tappé auparavant dans la userform dans la cellule A2 et ainsi de suite jusqua ce qu'il tombe sur la cellule H20 par exemple qui elle sera vide et marquera la fin de la boucle.
Actuellement avec ce que j'ai fait, excel bugge et semble faire une boucle infini.
Tout ce que je veux, c'est que si il y a quelque chose dans la cellule H2, il me mette ce que j'ai tappé auparavant dans la userform dans la cellule A2 et ainsi de suite jusqua ce qu'il tombe sur la cellule H20 par exemple qui elle sera vide et marquera la fin de la boucle.
Actuellement avec ce que j'ai fait, excel bugge et semble faire une boucle infini.
Bonjour !
Ne maitrisant pas excel je voudrais bien avoir de l'aide.
Mon problème est le suivant:
j'ai créé un ligne avec des formules et des saisies!
je voudrais que les formules soit automatiquement dans leurs cellules respectives lorsque l'on rentre un nouvel enregistrement.
Merci pour votre aide
Ne maitrisant pas excel je voudrais bien avoir de l'aide.
Mon problème est le suivant:
j'ai créé un ligne avec des formules et des saisies!
je voudrais que les formules soit automatiquement dans leurs cellules respectives lorsque l'on rentre un nouvel enregistrement.
Merci pour votre aide
Bon, à force d'efforts et de sueurs, j'ai fini par arriver à mes fins. Je sais pas si c'est la solution la plus "propre", mais elle fonctionne.
Je poste la réponse pour ceux que ça interesse :
Merci pour l'aide de Pool Orion.
Je poste la réponse pour ceux que ça interesse :
Dim A As Integer Dim B As Integer A = 1 Do If Cells(A, "H") = "" Then Exit Do A = A + 1 Loop Until A = 3000 A = A - 1 For B = 2 To A Cells(B, "A") = Numérapport Next B
Merci pour l'aide de Pool Orion.