IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment naviguer parmi les différentes possibilités de filtres automatiques [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste Mainframe
    Inscrit en
    Avril 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Mainframe
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment naviguer parmi les différentes possibilités de filtres automatiques
    J'ai une macro qui me sert à exporter des données filtrées dans d'autres classeurs

    Je filtre selon une donnée dans une colonne et lance ma macro qui exporte puis choisis la prochaine donnés puis relance la macro encore.

    Pourrais-je faire en sorte que ma macro applique le filtre automatique au premier résultat, puis au deuxième, puis au troisième, jusqu'au dernier?

    Merci

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    le plus simple est d'analyser la colonne entière et d'en tirer une liste sans doublon des éléments

    plusieurs méthodes possibles :

    - méthode removeduplicates après avoir copié la colonne dans une feuille de brouillon
    - filtre avancé avec fonction export et paramètre "Unique = True"
    - injecter la colonne dans un tableau VBA, le parcourir pour alimenter un Dictionnaire
    etc...

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Si tes données sont sous forme de tableau, tu peux aussi ajouter une segment et boucler sur le segment.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonsoir,

    Sur cet exemple, on crée un classeur pour chaque pays:

    -Le filtre élaboré extrait la liste des pays
    -Une boucle extrait les lignes pour chaque pays

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub CreeClasseurs()
      Application.DisplayAlerts = False
      [A1:D10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[g1], Unique:=True
      For Each c In Range("G2", Range("G65000").End(xlUp))
         Range("G2") = c
         Sheets.Add
         Sheets("BD2").[A1:D10000].AdvancedFilter Action:=xlFilterCopy, _
             CriteriaRange:=Sheets("BD2").[G1:G2], CopyToRange:=[A1], Unique:=False
           ActiveSheet.Copy
           ActiveSheet.Name = c
           ActiveWorkbook.SaveAs Filename:=c
           ActiveWorkbook.Close
           ActiveSheet.Delete
           Sheets("BD2").Select
        Next c
    End Sub
     
     
    Boisgontier
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste Mainframe
    Inscrit en
    Avril 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Mainframe
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Ça fonctionne
    Ça fonctionne .

    J'ai eu à travailler pour adapter votre code à mon besoin mais en gros, vous m'avez lancé dans la bonne direction avec les bons outils.

    Merci énormément à tous ceux qui prirent la peine de me répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comment naviguer dans les résultats d'une requête ?
    Par DurDur dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/05/2015, 13h27
  2. Comment sont hiérarchisés les différents conteneurs
    Par arthuro45 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 23/09/2012, 17h57
  3. Les différentes possibilités ETL + OLAP
    Par knolz dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 27/05/2010, 11h48
  4. Comment naviguer entre les fenêtres en WPF ?
    Par M.Mounir dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 27/02/2009, 08h44
  5. Réponses: 3
    Dernier message: 30/01/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo