Aide Boucle VBA SVP
sctr
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aurai besoin d'aide pour faire une boucle en VBA svp.
Je vous explique mon code qui est lourd aujourd'hui :
If Not IsEmpty(Range("A2")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("B2")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("C2")) Then
MsgBox ("ATTENTION")
ElseIf Not (IsEmpty(Range("D2"))) Then
MsgBox ("ATTENTION")
If Not IsEmpty(Range("A3")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("B3")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("C3")) Then
MsgBox ("ATTENTION")
ElseIf Not (IsEmpty(Range("D3"))) Then
MsgBox ("ATTENTION")
Et ainsi de suite ....
J'aimerai faire une boucle tout d'abord et ensuite que le code se fasse jusqu'à ce que j'arrive à une ligne complètement vide.
Comment pourrais-je faire ?
Merci d'avance pour votre aide.
J'aurai besoin d'aide pour faire une boucle en VBA svp.
Je vous explique mon code qui est lourd aujourd'hui :
If Not IsEmpty(Range("A2")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("B2")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("C2")) Then
MsgBox ("ATTENTION")
ElseIf Not (IsEmpty(Range("D2"))) Then
MsgBox ("ATTENTION")
If Not IsEmpty(Range("A3")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("B3")) Then
MsgBox ("ATTENTION")
ElseIf Not IsEmpty(Range("C3")) Then
MsgBox ("ATTENTION")
ElseIf Not (IsEmpty(Range("D3"))) Then
MsgBox ("ATTENTION")
Et ainsi de suite ....
J'aimerai faire une boucle tout d'abord et ensuite que le code se fasse jusqu'à ce que j'arrive à une ligne complètement vide.
Comment pourrais-je faire ?
Merci d'avance pour votre aide.
A voir également:
- Aide Boucle VBA SVP
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Dépassement de capacité vba ✓ - Forum Excel
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
5 réponses
Bien sûr que ça correspond !
Pas besoin de boucle !!!!
Il faut une ligne de code par message ... et dans cette ligne tester la colonne.
(i.e. au lieu de A2:D3, tester A2:A3)
et pas de ElseIf inutile.
EDIT : la prochaine fois réfléchis à un exemple représentatif du besoin avant de poser une mauvaise question...
Pas besoin de boucle !!!!
Il faut une ligne de code par message ... et dans cette ligne tester la colonne.
(i.e. au lieu de A2:D3, tester A2:A3)
et pas de ElseIf inutile.
EDIT : la prochaine fois réfléchis à un exemple représentatif du besoin avant de poser une mauvaise question...
Bonjour a vous deux,
Une facon de faire. Par contre 500 lignes a faire des click souris si colonne A ok jusqu'a 500 et les autres colonnes OK
Y a quand meme un probleme si colonne A OK jusqu'a la fin-1. Manque une info
Suite: code corrige
Une facon de faire. Par contre 500 lignes a faire des click souris si colonne A ok jusqu'a 500 et les autres colonnes OK
Y a quand meme un probleme si colonne A OK jusqu'a la fin-1. Manque une info
Suite: code corrige
Sub test()
LD = 2
With Worksheets("feuil1")
PCV = .Columns("A:D").Find("*", , , , xlByRows, xlPrevious).Row + 1
Do
If .Cells(LD, 2) = "Jean" Then
MsgBox ("ATTENTION,prénom incorrect")
ElseIf .Cells(LD, 3) = "DUPONT" Then
MsgBox ("OK")
ElseIf .Cells(LD, 4) <> 8 Then
MsgBox ("Num OK")
Else
End If
LD = LD + 1
Loop Until .Cells(LD, 1) = ""
If LD < PCV Then
MsgBox ("ATTENTION, " & Cells(LD, 1).Address & " case vide")
End If
End With
End Sub
Bonjour,
Par exemple :
Par exemple :
Option Explicit
Sub Test()
If Application.WorksheetFunction.CountA(ActiveSheet.Range("A2:D3")) > 0 Then MsgBox ("ATTENTION")
End Sub
Bonjour,
Je vous remercie pour votre retour.
Cependant, cela ne correspond pas tout à fait à ce que j'attends.
Les conditions ne seront pas forcément les mêmes, je précise un exemple plus clair :
If IsEmpty(Range("A2")) Then
MsgBox ("ATTENTION, case vide")
ElseIf Range("B2")= "Jean" Then
MsgBox ("ATTENTION,prénom incorrect")
ElseIf Range("C2")= "DUPONT" Then
MsgBox ("OK")
ElseIf Range("D2") <> "8" Then
MsgBox ("Num OK")
If IsEmpty(Range("A3")) Then
MsgBox ("ATTENTION, case vide")
ElseIf Range("B3")= "Jean" Then
MsgBox ("ATTENTION,prénom incorrect")
ElseIf Range("C3")= "DUPONT" Then
MsgBox ("OK")
ElseIf Range("D3") <> "8" Then
MsgBox ("Num OK")
Pour chaque colonne, la condition est différente.
Cependant, pour chaque ligne et chaque itération, les conditions seront les mêmes, seul le numéro de ligne change.
L'idée serait donc de faire une boucle qui me ferait pas copier coller chaque bloc si j'ai 500 lignes par exemple.
Et idéalement, que la boucle s'arrête lorsqu'il détecte que la cellule en colonne A est vide.
Merci par avance de votre aide.
Je vous remercie pour votre retour.
Cependant, cela ne correspond pas tout à fait à ce que j'attends.
Les conditions ne seront pas forcément les mêmes, je précise un exemple plus clair :
If IsEmpty(Range("A2")) Then
MsgBox ("ATTENTION, case vide")
ElseIf Range("B2")= "Jean" Then
MsgBox ("ATTENTION,prénom incorrect")
ElseIf Range("C2")= "DUPONT" Then
MsgBox ("OK")
ElseIf Range("D2") <> "8" Then
MsgBox ("Num OK")
If IsEmpty(Range("A3")) Then
MsgBox ("ATTENTION, case vide")
ElseIf Range("B3")= "Jean" Then
MsgBox ("ATTENTION,prénom incorrect")
ElseIf Range("C3")= "DUPONT" Then
MsgBox ("OK")
ElseIf Range("D3") <> "8" Then
MsgBox ("Num OK")
Pour chaque colonne, la condition est différente.
Cependant, pour chaque ligne et chaque itération, les conditions seront les mêmes, seul le numéro de ligne change.
L'idée serait donc de faire une boucle qui me ferait pas copier coller chaque bloc si j'ai 500 lignes par exemple.
Et idéalement, que la boucle s'arrête lorsqu'il détecte que la cellule en colonne A est vide.
Merci par avance de votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question