Suppression ligne si cellule numérique

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 !

Emmanuel31

XLDnaute Occasionnel
Bonjour,

je viens demander de l'aide car je ne trouve pas comment faire une chose.

J'ai un fichier xls qui récupère un csv afin de récuperer et mettre len forme les données dans des cellules.
Jusque là tout va bien 🙄

Le hic c'est que j'ai des bugs sur la génération du csv qui fait que certaines lignes sont inutiles ...
En gros ma première colone donne une date (ex: juil-10) et le second un texte (ex: Baie11).
Le bug fait que certaines fois, j'ai bien une date mais à coté j'ai un chiffre ou un point ... !!

Mon but serait de créer une macro qui vérifie le contenu des cellules de la seconde colone , et qui supprimerait les lignes dont les valeurs sont des chiffres 😕

Supprimer les lignes via macro j'y arrive mais je n'arrive pas à regarder le contenu de la cellule ... j'ai essayé avez un is notnumeric mais dans les propriétés des cellules, c'est partout en standard donc je suppose qu'il ne voit pas le type de donnée dedans et ne supprime pas ...

Bref, a l'aide !!! 😛

Pour plus de visibilité, je joins le fichier source ;-)
 

Pièces jointes

Dernière édition:
Re : Suppression ligne si cellule numérique

Bonjour,

Avec ce code feuille :

Code:
Option Explicit

Sub essai()
Dim Ligne As Long
Dim Plage As Range
Set Plage = Range(Range("B1"), Range("B" & Rows.Count).End(xlUp))
For Ligne = Plage.Count To 1 Step -1
    If IsNumeric(Plage.Cells(Ligne)) Then
        Range("B" & Ligne).EntireRow.Delete
    End If
Next Ligne
End Sub

Cordialement
 
Re : Suppression ligne si cellule numérique

Bonjour le fil 🙂,
Un poil plus court 😛
Code:
Sub test()
Dim I As Double, DerLigne As Double
DerLigne = Range("A65536").End(xlUp).Row
For I = DerLigne To 1 Step -1
If IsNumeric(Range("B" & I)) Then Rows(I).Delete
Next I
End Sub
Bonne soirée 😎
 
Re : Suppression ligne si cellule numérique

Bonjour Emmanuel31, mécano41, Jean-Noël,

Ceci est nettement plus rapide :

Code:
Sub Epure()
On Error Resume Next
With [B:B]
  .Replace ".", "", LookAt:=xlWhole 'supprime les points
  .SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'les blancs
  .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete 'les nombres
End With
End Sub

J'ai pris sur moi de supprimer aussi les points puisque :

Le bug fait que certaines fois, j'ai bien une date mais à coté j'ai un chiffre ou un point ... !!

A+
 
Re : Suppression ligne si cellule numérique

bonjour Emmanuel31,mécano41 les amis JNP & job75
on peut tenter cela !!

Code:
[B:B].SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete

ps pas lu avec attention il peut avoir le point !!!
le code de l'ami job 🙂🙂🙂🙂 est trop bien supprime le point
 
Dernière édition:
Re : Suppression ligne si cellule numérique

Bonjour à tous !

Et surtout un grand merci pour votre réactivité !!

Alors j'ai testé les différents codes et j'ai fini par prendre celui de Job75 😀

Il répond à toutes mes questions et est très rapide en exécution, même sur un fichier d'un milier de lignes !

Merci encore et bonne continuation à vous tous !
 
Re : Suppression ligne si cellule numérique

...et est très rapide en exécution, même sur un fichier d'un milier de lignes !

Bonjour a tous,

Si tu as beaucoup de lignes, ajoute :

Application.ScreenUpdating=False avant le With ...

et :

Application.ScreenUpdating=False après le end With

Cela inhibe et réactive la mise à jour de l'écran qui prend du temps...


Cordialement
 
- 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

Discussions similaires

Réponses
6
Affichages
279
Réponses
5
Affichages
281
Réponses
10
Affichages
411
Retour