If, Life, And et Or imbriqués

Résolu/Fermé
nabhalia Messages postés 23 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 12 mars 2015 - 11 avril 2014 à 14:50
nabhalia Messages postés 23 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 12 mars 2015 - 18 avril 2014 à 11:34
Bonjour,

Je cherche la syntaxe pour supprimer une ligne, si ni la colonne F, ni la colonne J ne contiennent des valeurs avec les lettre a, b, c, d ou e.

Autrement dit : Si F ou J contient a ou b ou c ou d ou e, ne rien faire. Sinon, supprimer la ligne.

Le code suivant ne fonctionne pas, même avec les parenthèses :

For i = 2 To Range("A1048576").End(xlUp).Row
If Not Cells(i, 6) Like "*a*" Or "*b*" Or "*c*" Or "*d*" Or "*e*" _
And Not Cells(i, 10) Like "*a*" Or "*b*" Or "*c*" Or "*d*" Or "*e*" Then
Cells(i, i).EntireRow.Delete
End If
Next

Quelqu'un aurait-il une solution ?

En vous remerciant.


Nb

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 avril 2014 à 08:46
Bonjour

cette fonction utilisant les expressions régulières te renvoie VRAI si présence d'une de ces lettre: abcde ou ABCDE

Option Explicit
'Michel_M pour CCM le 12/04/14
'-------
Function verifier_abcde(Texto As String) As Boolean
Dim reg As Object
Dim verif As Object

Set reg = CreateObject("vbscript.regexp")
reg.Global = False
'accepte les majuscules
reg.IgnoreCase = True

reg.Pattern = "[a-e]"
Set verif = reg.Execute(Texto)
verifier_abcde = (verif.Count >= 1)

Set verif = Nothing
Set reg = Nothing
End Function

est tu sûr de vouloir parcourir les quelques 1 000 000 de lignes ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 12/04/2014 à 16:22
Tu peux aussi utiliser LIKE

if lacellule like [a-e] renvoie vrai si il y a a ou b ou....
ou*if lacellule like [!a-e] renvoie vrai si il n'y a pas a ni b ni.....

mais ca m'a amusé ce matin de pondre une expression régulière
0
nabhalia Messages postés 23 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 12 mars 2015
18 avril 2014 à 11:34
Merci Michel,

C'est encore toi qui me viens en aide.
C'est parfait, j'ai simplement réduit la taille pour ne pas parcourir le million de lignes.

Merci beaucoup, et désolé pour la réponse tardive :o)

Nb
0