XL 2016 VBA suppression lignes dans tableau [Résolu] par 2 contributeurs :)

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 !

ROCHER

XLDnaute Nouveau
Bonjour,

Malgré de nombreuses recherches et de nombreux tests, je suis bloqué sur un code VBA.

Je souhaite filtrer des lignes dans un tableau (sur 2 champs pour les filtres) puis supprimer les lignes visibles. J'ai trouvé la syntaxe qui semble adaptée, mais j'ai systématiquement une erreur d'exécution.

Voici mon code :

VB:
Sub Purger3()

Dim DernLigne As Long
Dim Exercice As Integer ' Declare la variable Exercice
Dim wS As Worksheet
   
    Set wS = Sheets("Ecritures analytiques")
   
    With Worksheets("Ecritures analytiques")
     If Not .AutoFilterMode Then .Range("A1").AutoFilter
    End With
   
    Exercice = InputBox("Quel exercice voulez vous purger ?")
   
    DernLigne = wS.Range("A" & Rows.Count).End(xlUp).Row
   
    wS.Range("A1").AutoFilter Field:=14, Criteria1:=Exercice
    wS.Range("A1").AutoFilter Field:=28, Criteria1:="Réalisé"
   
    wS.Range("A2:AB" & DernLigne).SpecialCells(xlCellTypeVisible).EntireRow.Delete

    Range("A1").AutoFilter

    ThisWorkbook.RefreshAll
 
End Sub

Quelqu'un a t'il une idée ?

Merci d'avance de votre aide,

Philippe
 
Bonjour Philippe,

comme tu peux le voir, il y a 3 erreurs dans ta macro, essaie comme ceci

VB:
Dim plage as Range
Set Ws = Sheets("Ecritures analytiques")

    With Ws
    DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
    Set plage = .Range("A1:AB" & DernLigne)
  
    Exercice = InputBox("Quel exercice voulez vous purger ?")

   plage.AutoFilter 14, Exercice, xlAnd
   plage.AutoFilter 28, "Réalisé", xlAnd

    .Range("A2:AB" & DernLigne).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With

    ThisWorkbook.RefreshAll
 
Dernière édition:
Bonjour,

Merci pour cette réponse. Je viens de tester ce code mais j'ai à nouveau une erreur d'exécution lorsqu'il arrive à la ligne de suppression ! Je joins un fichier de test si cela peut permettre de mieux voir ce qui se passe ... la macro s'appelle PurgerLignes dans le Module5, j'ai mis un bouton pour y accéder lors du test à droite du tableau des données. Pour l'exercice on peut prendre 2015 ou 2016.

Grand merci d'avance pour ton aide ...
 

Pièces jointes

Bonjour à tous

macro testée sur Excel 2013
VB:
Sub a()
Dim Exercice
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Exercice = InputBox("Quel exercice voulez vous purger ?")
    With ActiveSheet.ListObjects("Tableau6")
        .Range.AutoFilter Field:=14, Criteria1:=Exercice
        .Range.AutoFilter Field:=28, Criteria1:="Réalisé"
        .DataBodyRange.SpecialCells(12).Delete
        .AutoFilter.ShowAllData
    End With
End Sub
 
Merci à Lone-Wolf pour ses réponses qui m'ont aidé à mieux comprendre certaine parties du code.

Merci à Staple1600, ce code fonctionne parfaitement (il faut seulement que j'ajoute une précision sur la feuille qui contient les données) car le code est lancé à partir d'une autre feuille.

Grand merci à vous deux
 
Re

Oui, vas dans ton premier message, et dans le titre tu rajoute [Résolu par Stapple].
Non surtout pas, je trouve cette nouvelle habitude des plus fâcheuses 😡
On peut mettre résolu (bien que pour moi un post n'est jamais vraiment résolu)
Mais je ne vois pas l’intérêt de spécifier le pseudo d'un membre
(surtout sans savoir si c'est avec ou sans son aval)
 
- 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
303
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
386
Retour