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 :

Filtre avancé en vba [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    compte recevable
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : compte recevable

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Filtre avancé en vba
    Bonsoir à tous,

    J'ai besoin d'un coup de main. J'ai un fichier excel contenant 5 onglets. Dans chaque onglet, je souhaite filtrer mes doublons mais sans les effacer car j'ai mis une formule qui additionne mais doublon.

    Je cherche simplement à masquer tous les doublons de 4 onglets.

    Je n'ai aucun critère de recherche. Je travaille avec excel 2013 ou 2016 professionnel (je validerais demain pour être sûre de l'année).

    J'aimerais que le vba puisse être actif sur une feuille active et j'aimerais le mettre sur un bouton.

    J'avais trouvé un code mais il ne fonctionne pas à mon travail. J'aimerais vraiment que ce soit un VBA parce que ça ne sera pas toujours à mon poste qu'on remplira ce fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub FiltreDoublon()
    [F:F].AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    End Sub
    Merci pour votre aide

    Je suis découragée

    P.s. Si vous avez besoin d'un fichier, j'ai un fichier test mais fait dans excel 2016 familial.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range("F1:F101").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Cependant il est préférable de calculer le nombre de ligne dynamiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With ActiveSheet.Range("A1").CurrentRegion
     .Columns(5).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
     End With
    Il est évident que pour cet exemple la ligne des titres est en ligne 1 et la première cellule de la liste des données est A1

    et avec un tableau structuré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim olst As ListObject
     Set olst = ActiveSheet.ListObjects(1)
     olst.ListColumns("Logement").Range.AdvancedFilter Action:=xlFilterInPlace, Unique:=True, CopyToRange:=rngTarget
    A lire éventuellement
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Femme Profil pro
    compte recevable
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : compte recevable

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut
    Bonsoir,

    J'ai pu tester le premier code qui semble vouloir fonctionner mais il s'enregistre dans mon personal. En s'enregistrant à cette place, ma collègue ne peut pas utiliser mon bouton. Où dois-je le créer pour que le code soit fonctionnel peu importe l'utilisateur du fichier.

    Seconde question, si j'aimerais qu'il s'applique lorsque je sélectionne une colonne au lieu de lui dire dans laquelle je veux qu'il agisse. De cette manière, Je n'aurais qu'à sélectionner ma colonne et je pourrais l'utiliser sur tous mes onglets.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range("F1:F101").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Je vous remercie de votre aide.

    P.S À mon travail, nous utilisons excel 2013 professionnel

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai pu tester le premier code qui semble vouloir fonctionner mais il s'enregistre dans mon personal. En s'enregistrant à cette place, ma collègue ne peut pas utiliser mon bouton. Où dois-je le créer pour que le code soit fonctionnel peu importe l'utilisateur du fichier.
    Je ne comprends pas.
    • A quoi correspond "mon personal" ?
    • De quel bouton s'agit-il ?


    Dans le code proposé, j'ai utilisé l'objet ActiveSheet parce-que c'est votre demande
    J'aimerais que le vba puisse être actif sur une feuille active et j'aimerais le mettre sur un bouton
    .


    [EDIT]
    Seconde question, si j'aimerais qu'il s'applique lorsque je sélectionne une colonne au lieu de lui dire dans laquelle je veux qu'il agisse. De cette manière, Je n'aurais qu'à sélectionner ma colonne et je pourrais l'utiliser sur tous mes onglets.
    Il suffit de modifier la procédure que j'ai proposée en y ajoutant un argument dont la valeur passée serait le n° de la colonne
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub FilterUnique(ColumnNumber As Integer)
     With ActiveSheet.Range("A1").CurrentRegion
     .Columns(ColumnNumber).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
     End With
    End Sub
    Exemple pour l'invoquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub TestFilterUnique()
      FilterUnique 5
    End Sub
    Pour que cela fonctionne sur sélection de la colonne, on peut utiliser une procédure événementielle telle que Worksheet_BeforeDoubleClick
    Exemple (Cet exemple ne contient aucun test sur le numéro de ligne sélectionné ni l'interception d'erreur, ni aucune vérificaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       FilterUnique Target.Column
       Cancel = True
    End Sub
    Pour que cela fonctionne dans toutes les feuilles d'un classeur, on privilégiera la procédure événementielle Workbook_SheetBeforeDoubleClick
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Femme Profil pro
    compte recevable
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : compte recevable

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Problème résolue
    Bonjour,

    J'ai enfin réussi Je suis vraiment trop contente

    Merci du coup de pouce

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

Discussions similaires

  1. [XL-2010] Filtres avancées via VBA (Listbox)
    Par Alasgard dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/06/2015, 12h46
  2. [XL-2010] Problème Filtre avancé avec VBA
    Par jppnancy dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/04/2015, 10h35
  3. [XL-2013] Filtre Avancé - VBA
    Par qboullier dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/07/2014, 13h57
  4. Filtre automatique en VBA
    Par kikou44 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/07/2006, 21h24

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