Filtre "Ne contient pas"
Bonjour à tous sur le forum
Je suis de retour pour demander votre aide.
Etant donné qu'Excel ne permet pas de mettre plus de 2 choix dans un filtre "Ne contient pas", j'ai tenté de créer une macro qui le ferait sous forme de boucle :
With Sheets("feuil1")
nbr_mots = .Range("A65000").End(xlUp).Row - 1
For j = 1 To nbr_mots
va1(j) = "=*" & .Range("A" & j + 1).Value & "*"
Next
End With
With Sheets("feuil2")
firstrow = .Range("C2").Row
lastrow = .Range("C65000").End(xlUp).Row
.Range("C" & firstrow & ":D" & lastrow).Copy
End With
With Sheets("feuil3")
For i = 1 To nbr_mots
.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("B1").AutoFilter
firstrow = .Range("A1").Row
lastrow = .Range("A65000").End(xlUp).Row
.Range("B" & firstrow & ":B" & lastrow).AutoFilter Field:=2, Criteria1:="<>" & va1(i), Operator:=xlAnd
.Cells.Copy
.Cells.Clear
Next
End WithEn gros, sur la feuil3 à la fin, il ne devrait rester que les lignes ne contenant aucune des différentes chaines de caractères présentent dans ma variable nbr_mots.
Mon seul problème est la ligne :
.Range("B" & firstrow & ":B" & lastrow).AutoFilter Field:=2, Criteria1:="<>" & va1(i), Operator:=xlAndJe pense que le problème se trouve à Criteria1:="<>" & va1(i), je ne sais pas comment faire en VBA pour qu'Excel comprenne ma variable.
Si quelqu'un a une réponse, je vous en remercie
Cordialement
bonjour Eldeven le forum
je pense comme cela
For i = 0 To ubound(va1)
.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("B1").AutoFilter
firstrow = .Range("A1").Row
lastrow = .Range("A"& rows.count).End(xlUp).Row
.Range("B" & firstrow & ":B" & lastrow).AutoFilter Field:=2, Criteria1:= "<>" & va1(i), Operator:=xlAndcar ton tableau va1 commence à 0
mais pour le
.Cells.Copy
.Cells.Clear
là tu copies OK mais juste derrière tu supprimes tout le contenu de ta feuille?????
sans aller copier le résultat de ta recherche précédente !!!
De plus copier oui mais il faut que tu copies seulement les lignes visibles de ta feuille déjà filtrée, et ensuite appliquer le nouveau mot à ton filtre
et aussi il faut que tu sois sur d'avoir bien dans ta variable * ton mot *
en clair un petit fichier et on va démêler ta demande
a+
Papou