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 :

Creer un filtre auto avec une variable en critère de filtre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Par défaut Creer un filtre auto avec une variable en critère de filtre
    Bonjour,

    Je me retrouve une nouvelle fois devant un problématique

    J'ai un fichier excel, dedans il y a une feuilleA avec plain de données comprenant des titres.
    Une deuxième feuilleB ou dans les cellules A1=toto et A2 babar (toto et babar étant des titre pour le filtre)

    Je voudrais pour dans ma macro, exécuter une boucle qui exécuterais un filtre automatique de la colonne B:B de la feuille A et dont le critère de filtre sera une variable que fera référence aux contenue de la cellule A1 de ma feuilleB.
    Et faire une boucle jusqu'a qu'il trouve une cellule Ax vide.
    j'ai essayer plusieurs chose en critères mais rien ne marche, même en déclarant une variables, je mi prend mal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sheets("feuilleB").Select
        Columns("B:B").Select
        Selection.AutoFilter
        ActiveSheet.Range("$B$1:$B$107194").AutoFilter Field:=1, Criteria1:= _
            "Ma variable"

    ------------------------------
    petite reformulation

    j'ai donc trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim mavariable As String
        Sheets("liste").Select
        mavariable = Range("A1").Value
        Sheets("Regroupement").Select
        Columns("B:B").Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$C$9").AutoFilter Field:=2, Criteria1:=mavariable
    //dans la cellule A1 il y à "Gem/" , et cela marche très bien.
    Mais je voudrais mettre dans la cellule A1 "Gem" et que ce se soit aps égal à "mavariable" mais que cela contienne "mavariable"

    Merci beaucoup pour votre aide et bonne journée !!

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    je ne comprends rien car pas besoin de boucle pour effectuer un simple filtre !
    Une explication claire & exhaustive est nécessaire …

    _________________________________________________________________________________________________________
    Je suis Paris, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Par défaut
    j'ai une macro, dans cette macro je voudrais faire un filtre auto sur la colonne B:B de la feuilleB avec comme critère de filtre une variable.
    Cette variable fera référencement a la cellule A1 de la feuilleA; une fois filtrè je vais copier les données et les exporter.
    Puis je vais refaire un filtre avec lla même variable mais la qui fera référence a la cellule A2 de la feuilleA.


    Et je ne sais pas si cela est possible mais j'aimerais aussi admettons que dans mes possibilité de filtre sur ma colonne B:B il y ai "carambar/malabar" pouvoir filtré sur "ambar" et que cela soit pris dedans
    j’espère avoir été plus clair merci de ton aide.

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Bonjour,

    A première vu, si j'ai tout bien compris, voir du coté des filtres élaborés ici

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Par défaut
    pas tout à fait.

    J'ai une colonne avec plusieurs données.
    J'enregistre une macro, qui vas filtrer ma colonne : Filtre -> "contient : gem "et sa me retourne cela :
    petite reformulation

    j'ai donc trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Dim mavariable As String
        Sheets("liste").Select
        mavariable = Range("A1").Value
        Sheets("Regroupement").Select
        Columns("B:B").Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$C$9").AutoFilter Field:=2, Criteria1:=mavariable
    //dans la cellule A1 il y à "Gem/" , et cela marche très bien.
    Mais je voudrais mettre dans la cellule A1 "Gem" et que ce se soit aps égal à "mavariable" mais que cela contienne "mavariable"


    Et a la fin de mon code je voudrais que sa fasse une boucle "A1,A2,A3...." jusuqu'a qu'une cellule "An" soit vide


    merci quand même pour ton aide !!

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    visiblement tu as mal enregistré ta macro ? Les joker "*" sont là pour ça

    Si on veut chercher les mot contenant "aut"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Chaine
    Chaine = "*aut*"
    ActiveSheet.Range("$A$1:$C$9").AutoFilter Field:=2, Criteria1:=Chaine

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Par défaut
    merci beaucoup joe!!

    j'ai donc mi ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Dim Chaine
        'Windows("MODOP.xlsx").Activate
        'Sheets("Exploitant").Select
        'Chaine = Range("A2").Value
        'Windows("Regroupement.xlsx").Activate
        'Sheets("Regroupement").Select
        'Columns("B:B").Select
       ' Selection.AutoFilter
        'ActiveSheet.Range("$A$1:$C$9").AutoFilter Field:=2, Criteria1:=Chaine
    Maintenant je voudrais pouvoir faire une boucle jusqu’à ce que la cellule "An" soit vide ( ou un compte mais je ne sais pas faire non plus) merci pour votre aide en tout cas super, j’espère que vous pourrez me donner un dernier coup de pouce

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/07/2013, 16h06
  2. [PowerShell] Get-aduser -filter qui ne filtre pas avec une variable
    Par Merwyn dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 06/10/2012, 11h17
  3. [XL-2002] Utilisation d'un filtre avec une variable
    Par amerex dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2010, 02h35
  4. Réponses: 2
    Dernier message: 24/07/2007, 17h53
  5. [8.5] Impossible de creer une table croisée avec une variable shared
    Par rihiveli dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/04/2007, 10h32

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