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 -
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,
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:
- Supprimer les lignes si différent de 2 motifs
- Supprimer rond bleu whatsapp - Guide
- Impossible de supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer pub youtube - Accueil - Streaming
- Supprimer les données de navigation - Guide
1 réponse
Bonjour,
comme ceci:
Voilà
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à
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 !
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-B
ce qui donne:
Voilà
@+ Le Pivert
Bonne journée !