je souhaiterais créer une macro qui supprime les lignes lorsque d’une condition dans une colonne n’est pas respecter;
je m’explique :
en colonne E j’ai des chiffres et des lettres comme des 411L ou des 7044000000 ou des 4450000000
je souhaite supprimer les lignes quand dans la colonne E est < 7000000000
j’ai essayé plusieurs choses mais ça fonctionne pas
A teste de votre cote sans fichier c’est une proposition a l^'aveugle
Sub SupprimerLignes()
Dim ws As Worksheet
Dim LastRow As Long
Dim i As Long
Dim cellValue As Variant
Set ws = ThisWorkbook.Sheets(« Feuil1 ») 'Changez « Feuil1 » par le nom de votre feuille si nécessaire
LastRow = ws.Cells(ws.Rows.Count, « E »).End(xlUp).Row
For i = LastRow To 1 Step -1
cellValue = ws.Cells(i, 5).Value
If IsNumeric(cellValue) And cellValue < 7000000000 Then
ws.Rows(i).Delete
End If
je pense que ceci fonctionne bien jusqu’à 32.000 lignes
Sub SupprimerLignes()
With Sheets("Feuil1")
Set c = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row) 'entête E2 et le reste de la colonne
c.AutoFilter 1, "< 7000000000"
If c.SpecialCells(xlVisible).Count > 1 Then c.Offset(1).Resize(c.Rows.Count - 1).SpecialCells(xlVisible).EntireRow.Delete 'caution, ne pas supprimer l'entête
c.AutoFilter
End With
End Sub
j’ai testé les deux propositions
dans les deux , quand la colonne E contient un « 411X », cela ne supprime pas la ligne
dans la 2ème propo, ma ligne d’entête est la 1 et il faut pas la supprimer
J’identifie le souci : ma colonne E contient des données chiffées comme le 70440000 et de l’alphanumérique comme le « 411ABC »; les données en alphanumérique ne veulent pas se supprimer