Macro pour suppression via filtre
Résolu/Fermé
A voir également:
- Excel supprimer lignes filtrées
- Photo filtre gratuit - Télécharger - Retouche d'image
- Forcer suppression fichier - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
10 réponses
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
10 avril 2012 à 22:24
10 avril 2012 à 22:24
Bonjour,
Dans un premier temps, essayez avec cette ligne d'instruction :
Dans un premier temps, essayez avec cette ligne d'instruction :
Range("a2", "A" & [A65000].End(xlUp).Row + 1).Delete Shift:=xlUp
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.
'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.
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
Modifié par Le Pingou le 12/04/2012 à 10:38
Modifié par Le Pingou le 12/04/2012 à 10:38
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
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
ç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é !!)
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é !!)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
12 avril 2012 à 11:19
12 avril 2012 à 11:19
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... !
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... !
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".
(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".
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
12 avril 2012 à 16:29
12 avril 2012 à 16:29
Bonjour,
Essayez avec ces lignes d'instruction:
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
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...
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...
Le Pingou
Messages postés
12042
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 avril 2024
1 426
12 avril 2012 à 22:04
12 avril 2012 à 22:04
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/
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/