VBA-EntireRow.Delete fonctionne pas

Vero2782

XLDnaute Nouveau
Bonjour,

J'ai plusieurs onglet de données brutes de plusieurs clients. J'utilise la macro pour supprimer le data qui n'est pas celui du client à qui je veux envoyer les rapports.

Le code fonctionne sur la plupart des onglets sauf celui-ci.

Sheets("feuil1").Select
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row

Worksheets("feuil1").Range("$D$1:$D" & DerniereLigne).AutoFilter _
Field:=1, _
Criteria1:="<>" & ClientName
Worksheets("feuil1").AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Worksheets("feuil1").ShowAllData

La macro bogue sur le EntireRow.Delete

Il n'y a pas de table dans ma feuille 1. Ca me semble une fonctione simple, je comprend pas ce qu'il va pas....Êtes-vous inspiré ?

Merci

Véro
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Je pense que cela vient de la définition de ClientName.

Soit il est Nom Défini et il doit être [ClientName] :

upload_2017-4-5_10-54-56.png


VB:
Sub Test()
    Dim DerL&
    Feuil1.Select
    DerL = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    Feuil1.Range("$D$1:$D" & DerL).AutoFilter Field:=1, Criteria1:="<>" & [ClientName]   
    Feuil1.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    Feuil1.ShowAllData
End Sub

Soit il est variable et il faut le définir :

VB:
Sub Test()
    Dim DerL&, ClientName As String
    Feuil1.Select
    DerL = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    ClientName = Feuil1.Range("G1")
    Feuil1.Range("$D$1:$D" & DerL).AutoFilter Field:=1, Criteria1:="<>" & ClientName
    Feuil1.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    Feuil1.ShowAllData
End Sub

A+ à tous
 

Discussions similaires

Réponses
2
Affichages
99

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof