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 deux colonnes d'un tableau [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut Filtre deux colonnes d'un tableau
    Bonjour,

    Je ne comprends pas pourquoi mon code VBA ne marche pas...

    Ci-dessous mon tableau que je veux filtrer via VBA :

    Nom : Filtre.jpg
Affichages : 144
Taille : 52,0 Ko

    Et ci-dessous mon code :

    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
    21
    22
    23
    24
    25
     
    Sub filtre_tableau()
    '
    ' filtre_tableau Macro
    '
    '
    Nom = InputBox("Quel nom voulez-vous filtrer?", "Choix du nom")
    Prenom = InputBox("Quel prénom voulez-vous choisir?", "Choix du prénom")
    If Prenom = "" Then
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2 'Défiltrer la colonne 2
    Else
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    End If
     
    If Nom = "" Then
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1 'Défiltrer la colonne 1
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    Else
      ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    End If
     
    End Sub

    Exemple du problème :

    Lorsque je mets Q pour Nom et rien pour Prenom, le filtre m'affiche vide alors que deux lignes devraient apparaître dont le Téléphone est 1 et 2
    Mais lorsque je mets rien pour Nom et André pour Prenom, les deux lignes dont le Telephone est 1 et 2 apparaissent bien.


    Merci pour votre aide

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour ..., le forum,

    Peut-être comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub filtre_tableau()
    Dim Nom As Variant
    Dim Prenom As Variant
     
    ActiveSheet.Range("$A$1:$C$19").AutoFilter
    Nom = Application.InputBox("Quel nom voulez-vous filtrer?", "Choix du nom", Type:=2)
    If Nom = False Or Nom = "" Then Exit Sub
    Prenom = Application.InputBox("Quel prénom voulez-vous choisir?", "Choix du prénom", Type:=2)
    If Prenom = False Or Prenom = "" Then Exit Sub
    ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
    ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    End Sub

  3. #3
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut Resolu
    J'ai trouvé au finalement par moi-même

    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
     
    Nom = InputBox("Quel nom voulez-vous filtrer?", "Choix du nom")
    Prenom = InputBox("Quel prénom voulez-vous choisir?", "Choix du prénom")
    If Nom = "" And Prenom <> "" Then
      ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    End If
     
    If Nom <> "" And Prenom = "" Then
      ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
    End If
     
    If Nom <> "" And Prenom <> "" Then
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=1, Criteria1:=Nom 'Filtrer la colonne 1 avec le critère Nom
     ActiveSheet.Range("$A$1:$C$19").AutoFilter Field:=2, Criteria1:=Prenom 'Filtrer la colonne 2 avec le critère Prénom
    End If

  4. #4
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    Merci en tout cas Thautheme pour ta réponse

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

Discussions similaires

  1. [Python 3.X] Permutation de deux colonnes d'un tableau
    Par davidus85 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 24/11/2014, 20h54
  2. [XL-2007] fusionner deux colonnes d'un tableau
    Par moha93 dans le forum Excel
    Réponses: 9
    Dernier message: 29/08/2014, 17h11
  3. Comparer deux colonnes adjacentes une à une sur mon tableau?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2007, 10h11
  4. Tableau a deux colonnes
    Par dellys2 dans le forum ASP
    Réponses: 9
    Dernier message: 02/12/2007, 22h15
  5. Tri de tableau à deux colonnes
    Par dhoorens dans le forum C++
    Réponses: 3
    Dernier message: 08/08/2007, 00h21

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