Supprimer les lignes si différent de 2 motifs

Résolu
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -  
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite dans un fichier EXCEL, avec vba supprimer dans une colonne les motifs donc les lignes qui ne sont pas égal à :

"PE - TESTONS"
&
"autre - mot"

Dans la macro suivante, Si j'indique 1 motif cela fonctionne mais si je propose 2 motifs,
cela ne fonctionne pas...

Voici ce qui ne fonctionne pas (erreur de syntaxe?)

Sub Delssmotif1()
Application.ScreenUpdating = False

Dim i As Integer
Dim ssmotif As String
ssmotif = "PE - TESTONS";"autre - mot"
With ThisWorkbook.Sheets("donnees")
For i = .Range("X" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("X" & i).Value <> ssmotif Then
Rows(i).Delete
End If
Next i
End With
End Sub


Voici ce qui fonctionne :

Sub Delssmotif2()
Application.ScreenUpdating = False

Dim i As Integer
Dim ssmotif As String
ssmotif = "PE - TESTONS"
With ThisWorkbook.Sheets("donnees")
For i = .Range("X" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("X" & i).Value <> ssmotif Then
Rows(i).Delete
End If
Next i
End With
End Sub

Bien cordialement,


Configuration: Windows / Firefox 78.0
A voir également:

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

comme ceci:

Sub Delssmotif2()
Application.ScreenUpdating = False
Dim i As Integer
With ThisWorkbook.Sheets("donnees")
For i = .Range("X" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("X" & i).Value <> "PE - TESTONS" And .Range("X" & i).Value <> "autre - mot" Then
Rows(i).Delete
End If
Next i
End With
End Sub


Voilà

1
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
 
Bonjour et merci cs_Le Pivert !

Cela fonctionne !

Si je devais remplacer "PE - TESTONS" par "PE"* pour dire tout ce qui commence par "PE". Auriez- vous la syntaxe svp ?
Merci encore pour votre aide !
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention  
 
voir ceci:

https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-B

ce qui donne:

Option Explicit
Option Compare Text
'https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-B
Sub Delssmotif2()
Application.ScreenUpdating = False
Dim i As Integer
With ThisWorkbook.Sheets("donnees")
For i = .Range("X" & .Rows.Count).End(xlUp).Row To 2 Step -1
If Left(.Range("X" & i).Value, 2) <> "PE" And .Range("X" & i).Value <> "autre - mot" Then
Rows(i).Delete
End If
Next i
End With
End Sub


Voilà

@+ Le Pivert
0
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Un grand Merci !

Bonne journée !
0