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

XL 2013 Macro pour suprimer ligne avec un tiret

  • Initiateur de la discussion Initiateur de la discussion sz-gsi
  • 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 !

sz-gsi

XLDnaute Nouveau
Bonjour,

J'ai importé un fichier texte au format CSV dans Excel et lors de l'importation j'ai des lignes avec uniquement des tirets . Mon souhait serait d'avoir une macro qui permettrait de :

Dans la colone A, si le premier caractere de la cellule est un tiret alors il faut suprimer la ligne.

Merci d'avance !
 
Bonjour sz-gsi, bienvenue sur XLD,

Le fichier CSV étant affiché exécutez cette macro :
VB:
Sub Sup()
Columns(1).Replace "-*", "", xlWhole
On Error Resume Next 'si aucune SpecialCell
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
A+
 
Bonjour sz-gsi et bienvenue sur le forum

Voici une petite macro a adapter a ton besoin :

VB:
Sub Epure_Tiret()
    For i = Range("A65536").End(xlUp).Row To 1 Step -1
        If Left(Cells(i, 1), 1) = "-" Then
            Cells(i, 1).EntireRow.Delete shift:=xlUp
        End If
    Next
End Sub
 
Re, bonjour Fred0o,

Si le tableau est très grand avec un grand nombre de lignes disjointes à supprimer on utilisera :
VB:
Sub SupRapide()
Dim ncol%, tablo, i&, n&
With ActiveSheet.UsedRange
    ncol = .Columns.Count
    If ncol = 1 Then ncol = 2 'pour avoir au moins 2 éléments
    tablo = .Resize(, ncol) 'matrice, plus rapide
    For i = 1 To UBound(tablo)
        If Left(tablo(i, 1), 1) <> "-" Then
            n = n + 1
            For j = 1 To ncol
                tablo(n, j) = tablo(i, j)
            Next j
        End If
    Next i
    '---restitution---
    If n Then .Resize(n) = tablo
    .Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1).Delete xlUp 'RAZ en dessous
    With .Parent.UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
L'exécution est très rapide car on utilise un tableau VBA.

A+
 
- 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
8
Affichages
649
Réponses
4
Affichages
133
  • Question Question
Power Query Power Query
Réponses
26
Affichages
667
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…