Macro supprimer lignes avec condition commence par

chris6999

XLDnaute Impliqué
Bonjour

Je souhaiterais trouver un code qui me permettrait de supprimer toutes les lignes pour lesquelles, la colonne B ne commence pas par G, C, M, G.

Plage requise :
Dernière ligne ou F n'est pas vide jusqu'à la ligne 1 car la colonne A est vide

J'ai trouvé un code mais celui-ci ne semble pas fonctionner

Si quelqu'un peut m'apporter sa lumière en cette matinée pluvieuse, ce sera avec plaisir.

Cordialement
NB Fichier en PJ

Dim i As Integer, DerniereLigne As Integer

DerniereLigne = Range("A65536").End(xlUp).Row

For i = DerniereLigne To 1 Step -1
'si la valeur la de la colonne 4 n'est pas x OU y alors supprimer la ligne
If Not (Cells(i, 2).Value Like "*C*" Or Cells(i, 2).Value Like "*U*" Or Cells(i, 2).Value Like "*M*" Or Cells(i, 2).Value Like "*G*") Then
Rows(i).Delete
End If
Next
 

gilbert_RGI

XLDnaute Barbatruc
Re : Macro supprimer lignes avec condition commence par

Bonjour,

enlever le Not après le if et l' * devant chaque lettre et ça fonctionnera

Attention sensible à la casse M est différent de m etc...
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Macro supprimer lignes avec condition commence par

bonjour chris6999, gilbert_RGI:)

comme je comprends ??

une facon d'ecrire... on pourrait passer par un array pour les conditions

Code:
Option Compare Text
Sub es()
  Dim i As Long
  Application.ScreenUpdating = 0
  For i = Cells.Find("*", , , , , xlPrevious).Row To 1 Step -1
  If Left(Cells(i, 2), 1) <> "c" And Left(Cells(i, 2), 1) <> "u" And Left(Cells(i, 2), 1) <> "m" And Left(Cells(i, 2), 1) <> "g" Then Rows(i).Delete
  Next i
End Sub
ps il faut mettre <> a la place = trop vite ecrit :(

j'ai corrige:)
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Macro supprimer lignes avec condition commence par

ou ça
VB:
Sub test()
    Dim i As Integer, DerniereLigne As Integer, Res As String
    DerniereLigne = Range("A65536").End(xlUp).Row
    For i = DerniereLigne To 1 Step -1
        Res = UCase(Left(Cells(i, 2).Value, 1))
        If Res = "C" Or Res = "U" Or Res = "M" Or Res = "G" Then
            Rows(i).Delete
        End If
    Next
End Sub
 

chris6999

XLDnaute Impliqué
Re : Macro supprimer lignes avec condition commence par

ou ça
VB:
Sub test()
    Dim i As Integer, DerniereLigne As Integer, Res As String
    DerniereLigne = Range("A65536").End(xlUp).Row
    For i = DerniereLigne To 1 Step -1
        Res = UCase(Left(Cells(i, 2).Value, 1))
        If Res = "C" Or Res = "U" Or Res = "M" Or Res = "G" Then
            Rows(i).Delete
        End If
    Next
End Sub

Merci pour cette proposition mais il ne se passe rien.
Le code devrait logiquement supprimer les lignes 1 à 8240.

Je vais essayer de creuse
Merci encore
 

gilbert_RGI

XLDnaute Barbatruc
Re : Macro supprimer lignes avec condition commence par

Merci pour cette proposition mais il ne se passe rien.
Le code devrait logiquement supprimer les lignes 1 à 8240.

Je vais essayer de creuse
Merci encore
normal qu'il ne se passe rien si la colonne a est vide
mettre "B65536"
:)))
 

gilbert_RGI

XLDnaute Barbatruc
Re : Macro supprimer lignes avec condition commence par

comme d'hab s'il y avait un fichier exemple il n'y aurait pas de confusion

Code:
NB Fichier en PJ
il est où
 

chris6999

XLDnaute Impliqué
Re : Macro supprimer lignes avec condition commence par

comme d'hab s'il y avait un fichier exemple il n'y aurait pas de confusion

Code:
NB Fichier en PJ
il est où
Bonjour

Désolé le fichier était trop volumineux et il n'avait pas été pris en compte.
Je l'a modifié pour qu'il le soit.
Encore toutes mes excuses.
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas