Aide Boucle VBA SVP
Fermé
sctr
-
23 mars 2021 à 09:02
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 - 23 mars 2021 à 17:36
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 - 23 mars 2021 à 17:36
A voir également:
- Aide Boucle VBA SVP
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mkdir vba ✓ - Forum VB / VBA
- Boucle cmd - Forum Programmation
5 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 23 mars 2021 à 11:52
Modifié le 23 mars 2021 à 11:52
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...
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
Modifié le 23 mars 2021 à 17:34
Modifié le 23 mars 2021 à 17:34
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
23 mars 2021 à 11:11
23 mars 2021 à 11:11
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
Super, merci.
C'est exactement ce que je voulais, ça fonctionne niquel.
Merci beaucoup pour l'aide !
C'est exactement ce que je voulais, ça fonctionne niquel.
Merci beaucoup pour l'aide !
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
23 mars 2021 à 17:36
23 mars 2021 à 17:36
Re,
J'ai mis a jour le code a 17:34, prenez cette version
J'ai mis a jour le code a 17:34, prenez cette version