XL 2013 Macro pour suprimer ligne avec un tiret

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 !
 

job75

XLDnaute Barbatruc
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+
 

Fred0o

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal