XL 2013 Supprimer les lignes qui résultent d'un filtre multicritères avec une macro

Tranbi

XLDnaute Nouveau
Bonjour,

Je souhaite faire un fichier, issu d'une extraction, permettant de supprimer les lignes en fonction de certains critères, et comme c'est un travail quotidien, je suis parti sur une macro.
Essayons de faire simple... donc, c'est là que ça se complique...

Pour commencer, je travaille sur la colonne événement qui se constitue de 2 codes de 3 lettres, ce qui rend les combinaisons très nombreuses. Je voudrais que ma macro supprime toutes les lignes ayant certaines combinaisons de code (CORFAC, CORFAE, ODR, RBT, INFCHC...) dans la colonne événement (voir fichier en pièce jointe).

J'ai bien réussi à supprimer certaines lignes mais je n'arrive pas à le faire pour plus de 2 critères.

ActiveSheet.Range("$A$1:$L$1000").AutoFilter Field:=2, Criteria1:="<>CORFAE" _
, Operator:=xlAnd, Criteria2:="<>ODR"

Mais si je rajoute ", Operator:=xlAnd, Criteria3:="<>CORFAC" "ça ne fonctionne pas

J'ai bien vu qu'on pouvait sélectionner avec le filtre l'ensemble des possibilités avec la fonction Array mais justement le nombre de combinaisons possibles est trop élevé et ne sort pas forcément tous les jours, alors que je n'ai qu'une dizaine de combinaisons à supprimer.

J'ai cherché sur différents forums mais je n'ai pas trouvé la solution, ou alors je n'ai pas compris ce qui se disait... étant novice je ne peux pas tout comprendre du premier coup...

Pour finir, une fois que j'ai obtenu la liste voulue, j'ai réparti les lignes en fonction de l'expéditeur (un onglet par expéditeur) dans des onglets afin d'imprimer chaque liste. Je voudrais imprimer uniquement les feuilles expéditeurs contenant des informations. Celles qui n'ont que la ligne 1 ne doivent pas s'imprimer.

Merci d'avance pour votre aide
 

Pièces jointes

  • Liste anomalies.xlsm
    147.6 KB · Affichages: 61
  • Liste anomalies.xlsm
    147.6 KB · Affichages: 57

Tranbi

XLDnaute Nouveau
Re : Supprimer les lignes qui résultent d'un filtre multicritères avec une macro

Bien le bonjour en ce vendredi pluvieux... du moins sur Rennes

Bon... comment dire, je me suis un peu perdu dans tous ces morceaux de code à rajouter ou à remplacer à gauche et à droite. Mais bon en repartant de zéro, j'ai enfin réussi à remplacer une partie de mon code par les codes que vous m'avez communiqués Cathodique et Klin89.
J'ai donc utilisé le code de Cathodique pour la suppression des événements inutiles (ils sont tous supprimés désormais), auquel j'ai rajouté ma ligne de suppression des doublons (obtenu par l'enregistreur de macros), puis j'ai utilisé le code de Klin89 pour la ventilation des données.
Au final, j'arrive enfin à obtenir la liste des anomalies à analyser et elles sont dispatchées dans les feuilles qui leur correspondent.

Trois dernières questions et un conseil :

1ère question :
Comment faire pour ajuster automatiquement la largeur de mes colonnes dans les onglets de destination du dispatch ? j'ai essayé en sélectionnant les feuilles concernées mais ça n'ajuste que les colonnes de la première feuille

VB:
Sheets(Array("ANTALIS", "BOSTIK", "ELBA", "FEDRIGONI", "FUCHS", "HAMELIN", "LECAS", _
        "PAPYRUS", "TORRAS", "COMPTOIR", "EMERAUDE", "GAMA", "GRUEL", "LODI", "PAREDES", "PLG", _
        "SEPAL")).Select
    Sheets("ANTALIS").Activate
    Cells.Select
    Cells.EntireColumn.AutoFit

2ème question :
Comment faire pour n'imprimer que les feuilles qui ont des données hormis la ligne 1 ?

3ème question
Comment faire un tri sur plusieurs feuilles ? Une fois que la ventilation est effectuée, celle-ci se basant sur les codes clients, les lignes ne sont plus triées dans l'ordre espéré (département, puis ville, puis récépissé).


Conseil :
Avez-vous un site de référence concernant une formation VBA structurée, du genre qui commence par le début, à savoir définir ce qu'est une variable, une condition, une itération.... et avec des exercices, car certes il y a beaucoup à apprendre sur ce site mais je trouve que c'est un peu désordonné.

Sinon, merci encore pour votre aide et bon w.e

P.S : je joints la version à laquelle je suis arrivé... n'hésitez pas, faites vous plaisir !!!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 714
Messages
2 112 141
Membres
111 437
dernier inscrit
mimitorpez