Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer la ligne si le premier caractère est un chiffre

  • Initiateur de la discussion Initiateur de la discussion excel12
  • Date de début Date de début

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 !

E

excel12

Guest
Bonjour! 🙂

J'ai plus de 2000 lignes dans Excel.
Je souhaite supprimer toutes les lignes dont le premier caractère est un chiffre.
Chaque lignes est espacé d'un retour de ligne.


Donc, si j'ai ces 5 lignes par exemple:
ABC

5FG

ZM5

89L

W99

Il doit seulement me rester ces 3 lignes sans d'espace entre elles:
ABC
ZM5
W99

Est-ce que vous avez quelques idées?😕

Merci!🙂

Excel12
 
Re : Supprimer la ligne si le premier caractère est un chiffre

Bonsoir à tous

excel12
Pourquoi ouvrir un second fil??
https://www.excel-downloads.com/thr...i-le-premier-caractere-est-un-chiffre.212404/
D'autant plus que tu as des solutions dans le premier, non ?
Et je te redis que cette solution fonctionne
https://www.excel-downloads.com/thr...i-le-premier-caractere-est-un-chiffre.212404/
Si tu fais bien tout ce que j'écris dans ce message ...

EDITION: Bonsoir Valentin_Loupe, bonjour job75 😉
 
Dernière édition:
Re : Supprimer la ligne si le premier caractère est un chiffre

Bonjour excel12, Jean-Marie, Valentin_Loupe,

Au post #1 on parle de retour ligne, donc voyez le fichier joint avec cette macro :

Code:
Sub Nettoyage()
Dim r As Range, t, i As Long, s, j As Integer
Set r = Range("A1", Range("A" & Rows.Count).End(xlUp)(2))
t = r 'matrice (plus rapide) avec au moins 2 éléments
For i = 1 To UBound(t)
  s = Split(t(i, 1), vbLf)
  For j = 0 To UBound(s)
    If Left(s(j), 1) Like "#*" Then s(j) = Chr(1)
  Next
  t(i, 1) = Join(s, vbLf)
  t(i, 1) = Replace(t(i, 1), Chr(1) & vbLf, "")
  t(i, 1) = Replace(t(i, 1), vbLf & Chr(1), "")
  t(i, 1) = Replace(t(i, 1), Chr(1), "")
Next
r = t
End Sub
Edit : hum bien sûr remplacer If Left(s(j), 1) Like "#*" Then s(j) = Chr(1) par

Code:
If s(j) Like "#*" Then s(j) = Chr(1)
A+
 

Pièces jointes

Dernière édition:
Re : Supprimer la ligne si le premier caractère est un chiffre

Re,

Si une cellule en colonne A se retrouve vide, on peut supprimer toute la ligne :

Code:
Sub Nettoyage()
Dim r As Range, t, i As Long, s, j As Integer
Set r = Range("A1", Range("A" & Rows.Count).End(xlUp)(2))
t = r 'matrice (plus rapide) avec au moins 2 éléments
For i = 1 To UBound(t)
  s = Split(t(i, 1), vbLf)
  For j = 0 To UBound(s)
    If Left(s(j), 1) Like "#*" Then s(j) = Chr(1)
  Next
  t(i, 1) = Join(s, vbLf)
  t(i, 1) = Replace(t(i, 1), Chr(1) & vbLf, "")
  t(i, 1) = Replace(t(i, 1), vbLf & Chr(1), "")
  t(i, 1) = Replace(t(i, 1), Chr(1), "")
Next
r = t
'---suppression facultative des cellules vides---
r.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Voir la cellule A5 dans ce fichier (2).

Edit : hum bien sûr remplacer If Left(s(j), 1) Like "#*" Then s(j) = Chr(1) par

Code:
If s(j) Like "#*" Then s(j) = Chr(1)
A+
 

Pièces jointes

Dernière édition:
Re : Supprimer la ligne si le premier caractère est un chiffre

Re,

Une autre manière avec ce fichier (3) :

Code:
Sub Nettoyage()
Dim r As Range, t, i As Long, s, txt As String, j As Integer
Set r = Range("A1", Range("A" & Rows.Count).End(xlUp)(2))
t = r 'matrice (plus rapide) avec au moins 2 éléments
For i = 1 To UBound(t)
  s = Split(t(i, 1), vbLf)
  txt = ""
  For j = 0 To UBound(s)
    If Not s(j) Like "#*" Then txt = txt & vbLf & s(j)
  Next
  t(i, 1) = Mid(txt, 2)
Next
r = t
'---suppression facultative des cellules vides---
r.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sur 3000 lignes c'est à peine plus rapide.

A+
 

Pièces jointes

Re : Supprimer la ligne si le premier caractère est un chiffre

Re,

S'il y a des retours ligne superflus qu'on veut éliminer utiliser :

Code:
Sub Nettoyage()
Dim r As Range, t, i As Long, s, txt As String, j As Integer
Set r = Range("A1", Range("A" & Rows.Count).End(xlUp)(2))
t = r 'matrice (plus rapide) avec au moins 2 éléments
For i = 1 To UBound(t)
  s = Split(t(i, 1), vbLf)
  txt = ""
  For j = 0 To UBound(s)
    If Trim(s(j)) <> "" And Not s(j) Like "#*" Then txt = txt & vbLf & s(j)
  Next
  t(i, 1) = Mid(txt, 2)
Next
r = t
'---suppression facultative des cellules vides---
r.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Fichier (4).

A+
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
879
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…