Supprimer des lignes - cellules qui ne commencent pas par
Bonjour à tous,
Je cherche à ne conserver sur ma feuille que
les cellules dont la colonne AR ne sont pas égales à "" et dont les cellules dont la colonne B sont des noms dont la première lettre va de G à N
J'ai fait ceci, en éliminant chaque condition l'une après l'autre via un filtre (ici avec le "" puis le "A*" et alors ainsi de suite pour chaque première lettre dont la ligne doit être supprimée), mais je sais qu'il doit il y avoir un moyen bien plus simple (j'ai environ 2000 lignes sur ma feuille)
Sub supprimer()
With Worksheets("Rapport")
Dim LastRw As Long
LastRw = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
ActiveSheet.Range("AR2:AR" & LastRw).AutoFilter 1, ""
.AutoFilter.Range.EntireRow.Delete
ActiveSheet.Range("B2:B" & LastRw).AutoFilter 1, "=A*"
.AutoFilter.Range.EntireRow.Delete
End With
Je me disais que je pourrais conserver le premier delete via le filtre "" sur ma colonne AR, puis chercher la dernière ligne des "N" de ma colonne B, supprimer les lignes à partir de la ligne suivante, et finir par chercher la première ligne des "G" et supprimer les lignes au-dessus jusqu'à ma ligne 2 (la ligne1 étant mes intitulés) mais je ne trouve pas comment l'écrire.
Pouvez-vous m'aider ?
Merci à vous, bonne après midi
Bonjour Lorence,
Voici une proposition :
et le code modifié :
Sub supprimer2()
Dim LastRw As Long
Dim i As Byte
With Worksheets("Rapport")
LastRw = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
ActiveSheet.Range("$A$1:$AR$1").AutoFilter Field:=44, Criteria1:="" 'Filtre sur la colonne AR, soit la colonne 44
For i = 65 To 90 'En format ascii, les chiffres 65 à 90 correspondent aux lettres A à Z : voir ici https://www.rapidtables.com/code/text/ascii-table.html
If i < 71 Or i > 78 Then
ActiveSheet.Range("$A$1:$AR$1").AutoFilter Field:=2, Criteria1:="=" & Chr(i) & "*" 'Filtre sur la colonne B, soit la colonne 2
If ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row > 1 Then
Rows("2:" & LastRw).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp 'Supprime les lignes filtrées
End If
End If
Next
Selection.AutoFilter
End With
End Sub