Mettre boucle for dans condition if VBA
Je voudrais savoir s'il était possible de mettre un boucle for dans une condition if, par exemple:
if UBound(tab_bd)>0 and
for c=0 to UBound(tab_bd)
cells(tab_bd(c),6)=cells(tab_bd(0),6)
cells(tab_bd(c),7)=cells(tab_bd(0),7)
cells(tab_bd(c),8)=cells(tab_bd(0),8)
then
msgbox("ok")
end if
Pour l'instant ça ne marche pas...
Merci d'avance à ceux qui pourront m'éclairer sur ce point.
16 réponses
Plusieurs échanges portent sur la possibilité d'utiliser une boucle For dans une condition If en VBA et sur la manière d'évaluer plusieurs égalités entre des éléments d'un tableau et des cellules. Des réponses recommandent d'écrire explicitement les conditions avec des opérateurs logiques And et d'utiliser un drapeau (booléen) pour indiquer si toutes les vérifications sont satisfaites avant d'afficher le message. D'autres évoquent que chaque vérification doit être réalisée à l'intérieur d'une boucle séparée et que le résultat se décide via un indicateur tel que pTrouvé, afin d'éviter que le dernier élément ne masque les précédents.
-
Bonjour,
On ne vout pas trop ce que tu cherches à faire ..
Essaie ça :
dim bTrouvé as boolean ;
bTrouvé = false ;
if UBound(tab_bd)>0 then
for c=0 to UBound(tab_bd)
if cells(tab_bd(c),6)=cells(tab_bd(0),6) and
cells(tab_bd(c),7)=cells(tab_bd(0),7) and
cells(tab_bd(c),8)=cells(tab_bd(0),8) then
bTrouvé = true ;
exit for ;
next ;
end if ;
if bTrouvé then msgbox("OK") ;
cdlt