Macro supprimer lignes avec condition commence par

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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
 
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
 
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.
 

Pièces jointes

Re : Macro supprimer lignes avec condition commence par

Bonjour


Je me rends effectivement compte que le fichier joint était trop volumineux donc non pris en compte.

J'ai réduit les données pour qu'il le soit.

Encore toutes mes excuses

Cordialement
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
703
Réponses
8
Affichages
646
Réponses
4
Affichages
580
Réponses
8
Affichages
269
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour