Re : Supprimer la ligne si le premier caractère est un chiffre
Bonjour à tous
Une idée simple (que je viens de tester - donc cela fonctionne)
Appliquer un filtre élaboré avec un critère formulé: =ESTNUM(GAUCHE(A2)*1)
Ensuite clic-droit Supprimer ligne entière
NB: Je pars du principe qu'en A1, il y a l'entête (ou le titre de la colonne)
Re : Supprimer la ligne si le premier caractère est un chiffre
Bonjour à tous,
Salut l'Agrafe,
Peux-tu essayer avec :
VB:
Option Explicit
Sub Test()
Dim DerL&, L&
DerL = Feuil1.Range("A" & Rows.Count).End(3).Row
For L = 2 To DerL
If IsNumeric(Left(Cells(L, 1), 1)) = True Then Cells(L, 1).EntireRow.Delete
Next L
End Sub
Re : Supprimer la ligne si le premier caractère est un chiffre
salut
Si... je ne m"abuse, le filtre cache et pour supprimer, il est préférable de remonter :
Code:
Sub Supp()
Dim L As Single
Application.ScreenUpdating = 0
For L = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If IsNumeric(Left(Cells(L, 1), 1)) Then Rows(L).Delete
Next
End Sub
Une idée simple (que je viens de tester - donc cela fonctionne)
Appliquer un filtre élaboré avec un critère formulé: =ESTNUM(GAUCHE(A2)*1)
Ensuite clic-droit Supprimer ligne entière
NB: Je pars du principe qu'en A1, il y a l'entête (ou le titre de la colonne)
L'idée est bonne. J'ai essayé. Mais moi, le résultat que j'obtiens est que toutes les lignes avec les lettres disparaissent et il ne me reste que les lignes avec les chiffres. Ce que je souhaite, c'est conserver les lignes qui ont des lettres comme premier caractère. Mais je trouve que l'utilisation des filtres élaborés peut être très utile.
Re : Supprimer la ligne si le premier caractère est un chiffre
Bonjour JCGL,
J'ai essayé. Pour l'exemple que j'ai écrit dans la question, tout fonctionne bien. Mais aussitôt que j'ai essayé avec mes 1000 lignes que je devais traiter, rien n'a fonctionné. Je ne comprends pas très bien le code et je ne sais pas trop quoi modifier pour que le Code VBA puisse faire le travail.
Pourquoi il y a un «&» dans la variable Dim DerL&
Qu'est-ce que ça fait quand on déclare une variable Dim et qu'on met une virgule? Est-ce que ça permet de déclarer deux variables? L'une serait «DerL&», la seconde «L&»?
For L = 2 To DerL
Mais
DerL = Feuil1.Range("A" & Rows.Count).End(3).Row
Le «End(3).row», c'est pour dire à quelle ligne que la boucle doit arrêter?
Je ne comprends pas à quoi correspondent les «1» dans le «if»
If IsNumeric(Left(Cells(L, 1), 1)) = True Then Cells(L, 1).EntireRow.Delete
Re : Supprimer la ligne si le premier caractère est un chiffre
Bonjour Si...,
J'ai essayé ton code. Tout fonctionne parfaite. Aussi, peux-tu m'expliquer un peu comment fonctionne le «.End(x1Up)».
Parce que dans mon fichier où j'ai 1000 lignes à traiter, les lignes remplies sont espacées, par une ligne vide entre chaque. Je pensais qu'en mettant «.End(2xUp)» m'aurais permis de faire arrêter la macro après que celle-ci ait rencontré 2 lignes vides.
Donc, comment faire pour que ça fonctionne dans le cas de ligne vide comme dans ce nouvel exemple:
ABC