Macro : If avec plusieur conditons

  • Initiateur de la discussion Initiateur de la discussion aerocrash
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

aerocrash

Guest
Bonjour,
je suis entrain de réalisé une toute petite macro et j'aimerai savoir si il est possible de dire :

If cellule1 <> "cado" Then
If cellule1 <> "oiseau" Then
If cellule1 <> "papi" Then
If cellule1 <> "mami" Then
If cellule1 <> "zoro" Then

Mais ceci, en une ligne ?

En gros : si la valeur de la cellule 1 est différent des valeurs : cado, oiseau...
alors ... je fait xxx.

voila une question rapide 🙂
en vous remerciant d'avance
 
Re : Macro : If avec plusieur conditons

Bonjour AeroCrash,

Code:
If Instr(1,"Cadeau,oiseau,papi,mamie,zorro",Cellule1)=0 then [COLOR=red]CeQueTuVeux[/COLOR]

CeQueTuVeux est a remplacer par l'action désirée.

La fonction Instr Chercher la position d'une chaine de caractère dans une autre.

A bientôt
 
Re : Macro : If avec plusieur conditons

Salut @ll !

voici une solution :
Code:
Dim list as variant
Dim Tampon as boolean

list = array("cado","oiseau",...,"zoro")

For i = 0 to ubound(list)-1
     If cellule1.value=list(i) then
          Tampon = true
          Exit For
     end if
next

if Tampon = true then
     ...
else
     xxx
end if

Tu fais une liste avec toutes tes valeurs possibles et tu passes en revue la valeur de ta cellule par rapport à toutes celles de la liste
Si la cellule est égale à une des valeurs de la liste Tampon devient true sinon il reste à false (valeur par défaut)
et en faisant un test sur tampon tu sais si ta cellule est égale à une de tes valeurs !!!

Voila !
 
Re : Macro : If avec plusieur conditons

Code:
Sub Filtre_IDF()
Dim I As Long
Dim list As Variant
Dim Tampon As Boolean

Sheets("IDF").Select

list = Array("oiseaux", "lyon", "paris", "papi", "mami")

For I = 2 To 100
Tampon = FAUX
    
        For J = 0 To UBound(list) - 1
        If Cells(I, "A").Value = list(J) Then
        Tampon = VRAI
        End If
        Next
        
    If Tampon = FAUX Then
    Rows(I).Delete
    End If

Next

End Sub



Le probléme .. c'est qu'il supprimer un peu n'importe quoi... ca ne marche pas pourquoi ? la est la question 😛
 
Re : Macro : If avec plusieur conditons

Re bonjour AeroCrash

As-tu essayé la méthode que je t'ai donné plus haut?

si oui qu'est-ce qui ne fonctionne pas.
donne nous eventuellement un fichier.

A bientôt
 
Re : Macro : If avec plusieur conditons

Re !
Ok alors voici ton code !!!
Code:
Sub Filtre_IDF()

    Dim i As Integer
    Dim j As Integer

    Dim List As Variant
    Dim Tampon As Boolean

    List = Array("oiseaux", "lyon", "paris", "papi", "mami")

    ' fige l'écran ce qui accélère le code
    Application.ScreenUpdating = False

    Sheets("IDF").Activate

    For i = 2 To 100
    
        For j = 0 To UBound(List) - 1
            If Cells(i, "A").Value = List(j) Then
                Rows(i).Delete
                i = i - 1 'comme tu supprimes une ligne il faut revenir en arrière dans le décompte des lignes
                Exit For
            End If
        Next

    Next

End Sub

voila la ca doit fonctionner !
 
Re : Macro : If avec plusieur conditons

Re AeroCrash,

Voici une version qui fonctionne avec Instr:

Code:
Sub Filtre_IDF()
    Dim Plage As Range
    Dim i As Long
    Set Plage = Sheets("IDF").Range("A2:A" & Sheets("IDF").Range("A65536").End(xlUp).Row)
    For i = Plage.Rows.Count To 1 Step -1
        If InStr(1, "PAPI,MAMI,OISEAU", Plage.Cells(i).Text) = 0 Then
            Plage.Cells(i).EntireRow.Delete
        End If
    Next

End Sub

A bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
646
Réponses
7
Affichages
815
P
Réponses
7
Affichages
862
Pernin
P
Réponses
7
Affichages
1 K
S
Réponses
3
Affichages
874
sanae_J
S
S
  • Question Question
Réponses
2
Affichages
826
S
P
Réponses
2
Affichages
752
PCharlier
P
Retour