Sélectionner cellule terminant par.. dans colonne A puis supprimer la ligne

Bonjour la communauté,

Je cherche un code VBA qui pourrait supprimer toutes les lignes dont la colonne "A" ont des cellules qui se terminent par "7" .

ARTICLE DESIGNATIONFOURNISSEURNOM FOURNISSEUR
60269440EXEMPLE123EXEMPLE
60269080EXEMPLE123EXEMPLE
60225430EXEMPLE123EXEMPLE
60319240EXEMPLE123EXEMPLE
60319340 EXEMPLE123EXEMPLE
60272530EXEMPLE123EXEMPLE
600160707EXEMPLE LIGNE A SUPPRIMER123EXEMPLE
600160907EXEMPLE LIGNE A SUPPRIMER123EXEMPLE
60037050EXEMPLE123EXEMPLE
60037060EXEMPLE123EXEMPLE
60037080EXEMPLE123EXEMPLE
60037100EXEMPLE123EXEMPLE
60037110EXEMPLE123EXEMPLE
60037120EXEMPLE123EXEMPLE
60037130EXEMPLE123EXEMPLE
60037140EXEMPLE123EXEMPLE

Merci à vous pour l'intérêt porté et votre aide éventuel

Bonjour reso101, le forum,

A tester:

Option Explicit

Dim tablo, tabloR()
Dim i&, j&, k&

Sub Supprime()
    tablo = Sheets("Feuil1").Range("A1").CurrentRegion
    k = 0
    For i = 2 To UBound(tablo, 1)
        If Right(tablo(i, 1), 1) <> 7 Then
            ReDim Preserve tabloR(1 To 4, 1 To k + 1)
            For j = 1 To 4
                tabloR(j, 1 + k) = tablo(i, j)
            Next j
            k = 1 + k
        End If
    Next i
     Sheets("Feuil1").Range("A1").CurrentRegion.Offset(1, 0).ClearContents
    On Error Resume Next
     Sheets("Feuil1").Range("A2").Resize(UBound(tabloR, 2), 4) = Application.Transpose(tabloR)
End Sub

Nom de ta feuille à adapter....

1reso101.xlsm (15.82 Ko)

CTRL + E pour exécuter la macro.

Cordialement,

Comme d'habitude, cette communauté est hyper réactive. Donc un grand merci à xorsankukai...

J'ai adapté le code à mon tableau de 24.000 lignes et ça marche du tonnerre !!!

Voici un code plus simpliste pour les amateurs d'Excel dans mon genre ;)

Sub test()
Dim i As Long, dl As Long
dl = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To dl
If Right(Range("A" & i).Value, 1) = 7 Then
Rows(i).Delete
i = i - 1
End If
Next
End Sub

Re,

Merci pour le retour,


@Sophin: tu peux rajouter

Application.ScreenUpdating = False

en début de macro, pour éviter le scintillement de l'écran pendant l'exécution de la boucle, petit gain de temps.

Mais pour 24000 lignes, l'utilisation de "tablo" est beaucoup plus rapide, mais je reconnais que c'est plus compliqué, .


Cordialement,

Bonjour tout le monde,

Voici un code plus simpliste pour les amateurs d'Excel dans mon genre ;)

Sub test()
Dim i As Long, dl As Long
dl = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To dl
If Right(Range("A" & i).Value, 1) = 7 Then
Rows(i).Delete
i = i - 1
End If
Next
End Sub

Et pour supprimer ainsi, tu peux commencer par la fin, ça évite d'avoir à décrémenter ta variable :

Sub test()
Dim i As Long, dl As Long
dl = Cells(Rows.Count, 1).End(xlUp).Row
For i = dl To 2 step -1
If Right(Range("A" & i).Value, 1) = 7 Then
Rows(i).Delete
End If
Next
End Sub
Rechercher des sujets similaires à "selectionner terminant colonne puis supprimer ligne"