Macro pour suppression via filtre

Résolu
clio -  
 Clio -
Bonjour,

Je travaille sur des extractions d'outils métier sur lesquelles j'applique un filtre pour supprimer certaines lignes via une macro.
J'ai un problème avec la suppression de certaines lignes dont les critères sont :
- cellule non vide colonne AG
Mais ma macro me supprime également la ligne d'en tête et ne me les supprime pas toutes car les cellules sont vides en début de ligne.

Rows("1:1").Select
Selection.AutoFilter
Range("A1").AutoFilter Field:=33, Criteria1:="<>"
Range("A2", [A65000].End(xlUp)).Delete Shift:=xlUp
Selection.AutoFilter

Quelqu'un peut il m'aider ? HELP ;)

10 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Dans un premier temps, essayez avec cette ligne d'instruction :
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
    0
  2. Clio
     
    La macro passe mais ne m'enlève pas les lignes concernées
    'Suppression des lignes avec une info de non prod colonne AG
    Range("A1").AutoFilter Field:=33, Criteria1:="<>"
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
    Selection.AutoFilter

    En fait, les lignes concernées ont peu de cellules renseignées, j'ai l'impression que c'est ce qui les empêchent d'être détectées.
    0
  3. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je viens de réaliser un test avec plus de 17'000 lignes et le résultat est conforme à la procédure.
    J'ai bien toutes les lignes où la cellule de la colonne [AG/33] est vide soit suppression des autres.
    Ma réponse concerne ce message:
    La macro passe mais ne m'enlève pas les lignes concernées
    'Suppression des lignes avec une info de non prod colonne AG
    Range("A1").AutoFilter Field:=33, Criteria1:="<>"
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
    Selection.AutoFilter

    En fait, les lignes concernées ont peu de cellules renseignées, j'ai l'impression que c'est ce qui les empêchent d'être détectées.

    Il n'est pas valable pour:
    La macro passe mais ne m'enlève pas les lignes concernées
    Dim i As Long
    For i = Range("A65536").End(xlUp).Row To 2 Step -1
    If Cells(i, 33) Like "*CD*" Then Rows(i).Delete
    Next i

    En fait, les lignes concernées ont peu de cellules renseignées, j'ai l'impression que c'est ce qui les empêchent d'être détectées.


    Salutations.
    Le Pingou
    0
  4. Clio
     
    ça marche pas ... je suis pas une flèche en VB mais là j'arrive pas à trouver la faille...

    voici le début de ma macro
    'ONGLET NON CLOTUREES
    Sheets("Non cloturées").Select

    'Suppression des lignes d'inter "annulées" ou "clôturées"
    Rows("1:1").Select
    Selection.AutoFilter
    Range("A1").AutoFilter Field:=3, Criteria1:="=Annulée", Operator:=xlOr, Criteria2:="=Clôturée"
    Range("A2", [A65000].End(xlUp)).Delete Shift:=xlUp
    Selection.AutoFilter

    'Suppression des lignes autres que "3A" ou "DB" colonne D
    Range("A1").AutoFilter Field:=4, Criteria1:="<3A>", Criteria2:="<DB>"
    Range("A2", [A65000].End(xlUp)).Delete Shift:=xlUp
    Selection.AutoFilter

    'Suppression des lignes avec une info de non prod colonne AG
    Range("A1").AutoFilter Field:=34, Criteria1:="<>"
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
    Selection.AutoFilter

    la 1ère manip de suppression fonctionne (annulées/cloturées)
    et ensuite ça marche plus !!!
    Le problème ne viendrait il pas de la commande Selection.AutoFilter ???

    Merci beaucoup pour ton aide ! (je mange tout mon chocolat de Pâques à ta santé !!)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je constate que les conditions de suppressions des lignes ont évolué en nombre de critère ; au début ce n'était que les lignes différentes de vide en colonne [AG/33].
    Dans ce sens je vais attendre votre dernière version... !
    0
  7. Clio
     
    en fait je n'avais évoqué que mon problème pour le filtre sur la colonne AG car le reste fonctionnait.
    (ou AH, en fait c'est l'abréviation et le libellé complet donc on peut supprimer les lignes indifférements selon l'une ou l'autre colonne. Et comme j'ai testé les 2, je m'aperçois que ma macro est sur le filtre AH/34)

    J'ai construit à ma macro en supprimant des lignes grace au filtre et en plusieurs étapes.

    du coup, je ne comprends pas trop ce qu'est ma "dernière version".
    0
  8. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Essayez avec ces lignes d'instruction:
    'ONGLET NON CLOTUREES
    Sheets("Non cloturées").Select
    ' Suppression des lignes d'inter "annulées" ou "clôturées"
    Rows("1:1").SelectSelection.AutoFilter   
    Range("A1").AutoFilter Field:=3, Criteria1:="=Annulée", Operator:=xlOr, Criteria2:="=Clôturée"   
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp   
    Range("A1").AutoFilter Field:=3
    ' Suppression des lignes autres que "3A" ou "DB" colonne D   
    Range("A1").AutoFilter Field:=4, Criteria1:="<>3A", Operator:=xlOr,  Criteria2:="<>DB"   
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
    Range("A1").AutoFilter Field:=4
    ' Suppression des lignes avec une info de non prod colonne AG   
    Range("A1").AutoFilter Field:=33, Criteria1:="<>"   
    Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp   
    Range("A1").AutoFilter Field:=33
    Selection.Autofilter
    0
  9. Clio
     
    Merci de m'aider :)
    Après lancement de la macro, il ne me reste que les lignes avec une valeur dans la colonne "non prod". donc pile l'inverse de ce que je cherche à faire !

    Vraiment je ne comprends pas d'ou vient le problème avec cette programmation...
    0
  10. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    C'est étonnant car les critères non pas été changer.
    Pouvez-vous réaliser une copie d'écran (éditeur VBA) de la procédure que vous utilisez, la coller sur un document Word et le mettre sur https://www.cjoint.com/
    0
  11. Clio
     
    Bonjour,

    le problème n'est pas résolu mais contourné (j'ai exclu les lignes dès l'extraction sur l'outil)

    Néanmoins, je vous remercie de vous être penché sur mon problème !
    0