Condition sur un nombre quelconque de variable

Résolu
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011
- 18 août 2011 à 16:12
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 18 août 2011 à 19:02
Bonjour !
comment est-il possible de faire ça ?

if ( cell(1).value "" And cell(2).value "" And ... And cell(n).value = "" )
étant donné que je ne connais pas combien de fois je vais devoir ecrire AND, comment est ce que je fais ça ?

merci !

10 réponses

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
18 août 2011 à 16:28
Bonjour,
si toutes les cellules d'une plage (un Range) sont vides, la fonction CountA renvoit 0
Exemple pour la plage A2:A10 ===>>
if WorksheetFunction.CountA(Range("A2:A10")) = 0 then msgbox "vide"

Je ne comprends par contre pas ceci :
...étant donné que je ne connais pas combien de fois je vais devoir ecrire...

que veux-tu exactement exprimer ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 16:44
ben le nombre de fois que And apparait est n-1 étant donné que j'ai n cellule à vérifier
mais le nombre de cellule n varie
donc si n = 2
il n'existe un And à qui on peut donner un nombre quelconque de conditions ?
genre And(condition1, condition2, condition3, ..., condition53000) ?
ça serait quand même bien pratique de ne pas avoir à écire
condition1 And condition2 And condition3 And ....... And condition53000
0
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 16:48
(c'est pas possible d'éditer sur ce forum ?)

ben le nombre de fois que And apparait est n-1 étant donné que j'ai n cellule à vérifier
mais le nombre de cellule n varie


il n'existe pas un And à qui on peut donner un nombre quelconque de conditions ?
genre ça ressemblerait à
And(condition1, condition2, condition3, ..., condition53000) ?
ça serait quand même bien pratique de ne pas avoir à écire
condition1 And condition2 And condition3 And ....... And condition53000
0
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 17:01
désolé, je vois que j'ai encore mal ecris,
ce qu'il faudrait, c'est And(pour i allant de 1 à n, condition(i))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
18 août 2011 à 17:08
Pas de problème, mais n doit réellement avoir une valeur connue !
Je t'ai par ailleurs montré qu'une boucle sur tes cellules n'était pas nécessaire.
Application : ====>>

n = 210
if WorksheetFunction.CountA(Range("A2:A" & n)) = 0 then msgbox "vide"


mais n ne saurait être indéterminé !
Mais dis-nous donc : ne serait-ce pas (ton n) par hasard le numéro de la dernière ligne remplie de ta colonne ? Si oui : il faut nous le dire !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 17:30
merci, je m'en suis sorti grâce à ta fonction

voilà ce que je voulais faire

    While (WorksheetFunction.CountA(Range(Chr(COLONNE_AFFAIRE) & LTrim(Str(Ligne)) & ":" & Chr(COLONNE_COMMENTAIRE + 4) & LTrim(Str(Ligne)))) <> 0)
        Ligne = Ligne + 1
    Wend
0
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 17:34
hmm je remarque quelque chose d'étrange dans ton code
Range("A2:A" & n)
"A2:A" est une chaine alors que n est en entier, comment se fait-il que ça marche ?
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
18 août 2011 à 17:53
fait ce petit essai et tout sera clair dans ton esprit
n = 12
MsgBox "A" & n


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
anisometropie
Messages postés
16
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
22 août 2011

18 août 2011 à 18:15
oui il y'a un truc qui transforme notre entier n est la chaine "12"
c'est l'opérateur & qui est surchargé en fait ? (si j'ai bien compris l'histoire de surcharge d'opérateur)
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
18 août 2011 à 19:02
Il s'agit là du plus élémentaire.
Ce sujet est pour moi résolu.
Te reste à cliquer sur le tag "Réponse acceptée", s'il l'est pour toi ici.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0