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 :

[XL 2016] - Formulaire pour filtrer une base de données


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [XL 2016] - Formulaire pour filtrer une base de données
    Bonjour à tous !

    J'ai pour tâche de créer une base de données répertoriant des qualifications d'essais de soudage. Aucun problème de ce côté là, cependant je dois à présent créer une interface de filtre selon plusieurs critères.

    Voici à quoi ressemble l'en-tête de la BDD :

    Nom : 7fac94ef6fb8b0ed4170b63d0d0a5dc6.png
Affichages : 402
Taille : 17,6 Ko


    L'utilisateur doit pouvoir utiliser le nombre de filtres simultané qu'il souhaite. J'ai donc pensé à utiliser un Formulaire sur VBA pour rendre la chose plus graphique.

    Nom : f360d01be9270e4919bba63a9e04f5c8.png
Affichages : 539
Taille : 3,7 Ko
    J'ai simplifié en prenant juste l'exemple des QMOS et des PQR mais par déduction ça devrait me permettre de faire le reste.

    Seulement voilà, mes compétences en VBA étant assez limitées, je suis déjà bloqué par un problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub vQMOS_Click()
    Range("E1").Value = vQMOS
     
    End Sub
     
    Private Sub vPQR_Click()
    Range("F1").Value = vPQR
     
    End Sub
    Il faudrait que lorsque l'utilisateur coche la case "QMOS" dans le formulaire et clique sur le bouton "Rechercher", toutes les lignes de la base de données comprenant une croix dans la colonne QMOS soient copiées depuis la feuille BDD et collées dans ma feuille Filtre. De même pour les "PQR" et de même si l'utilisateur coche les deux cases.

    Votre mission si vous l'acceptez, est de m'aiguiller un petit peu car j'avoue être complètement à la ramasse...
    J'espère avoir été clair et concis, n'hésitez pas à me faire remarquer tout point noir dans mon explication un peu approximative.

    Je vous souhaite une agréable journée en attendant vos retours !
    Cordialement, Maxime.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Max321 Voir le message
    je dois à présent créer une interface de filtre selon plusieurs critères.
    Pourquoi vouloir réinventer le fil à couper le beurre et ne pas mettre en place un simple filtre classique, ce qui ne te prendrait que 10 s et permettrait beaucoup plus de possibilités que tout ce que tu pourras concevoir en VBA ?

    Votre mission si vous l'acceptez, est de m'aiguiller un petit peu car j'avoue être complètement à la ramasse...
    Etant donné la "difficulté" qui t'arrête, j'ai l'impression qu'il te faut plus qu'un "aiguillage" et que ce que tu demandes, c'est qu'on fasse le travail à ta place.
    Donc, "l'aiguillage" que je te propose, c'est de commencer par le commencement : http://bidou.developpez.com/article/VBA/

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'est pas faisable facilement en VBA ? Le problème des filtres classiques c'est qu'ils ne sont pas très visuels ni intuitifs pour un utilisateur lambda.

  4. #4
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour !

    Citation Envoyé par Max321 Voir le message
    je dois à présent créer une interface de filtre
    Inutile !   L'interface de filtre d'Excel existant déjà. (via les p'tites flèches)

    Rappel :  Excel n'étant pas un gestionnaire de base de données n'est donc pas l'outil idéal !


    Citation Envoyé par Max321 Voir le message
    C'est pas faisable facilement en VBA ? Le problème des filtres classiques c'est qu'ils ne sont pas très visuels ni intuitifs pour un utilisateur lambda.
    Si vous persister avec Excel - au risque de bien le regretter plus tard ! Tout dépend déjà de la taille de la "base de données" -
    en dehors des simples filtres - pourtant bien visuels & intuitifs ! - envisager aussi les filtres avancés.

    Consulter cet excellentissime tutoriel :  Les filtres avancés ou élaborés dans Excel

    Pour rappel, peu importe filtre simple ou avancé, tout ce qui est déjà réalisable manuellement dans Excel est automatisable :
    ne pas oublier l'Enregistreur de macro livrant une base de code sur un plateau !

    ___________________________________________________________________________________________________________
    Je suis Paris, New-York, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Entendu, merci de vos retours !

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Max321 Voir le message
    Le problème des filtres classiques c'est qu'ils ne sont pas très visuels ni intuitifs pour un utilisateur lambda.
    En développement, il faut être pragmatique.

    Une formation d'une heure (pause café incluse) peut suffire à transformer un groupe "d'utilisateurs lambda" en spécialistes des options de filtres.
    C'est certainement beaucoup moins qu'il en faudrait pour développer l'application que tu préconises.

    De plus, un simple filtre mis en place sera facilement maitrisable par les utilisateurs.
    Ton code VBA, par contre, ne sera maitrisé par personne (pas même toi si j'ai bien compris). Donc l'entreprise aura un outils "coffre fort" que personne ne pourra adapter à d'éventuelles évolutions et nouvelles demandes.

    Enfin, un filtre classique offrira certainement des centaines de possibilités qu'un outils VBA n'aura pas envisagé. Il permettra donc aux utilisateurs de réaliser des choses qu'ils n'avaient même pas envisagé au départ.
    Ton code VBA, par contre, devra être modifié pour chaque demande particulière et finira par ressembler à une usine à gaz boursoufflée de rajouts.

    J'ai déjà eu à faire face à ce type de demande. Mon choix n'a pas été long à faire.

  7. #7
    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
    Bonjour,

    Exemple de pilotage d'un filtre automatique à partir d'un formulaire.

    Boisgontier
    http://boisgontierjacques.f
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [AC-2016] Problême pour fermer une base de données Access par VBA Excel
    Par Handlordz dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/08/2016, 16h26
  2. Réponses: 3
    Dernier message: 05/08/2016, 15h42
  3. [XL-2010] Fichier de validation de factures: Utiliser une zone de liste pour filtrer une base
    Par Arnold35 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/02/2015, 11h44
  4. [AC-2007] Formulaire d'entrée pour alimenter une base de donnée
    Par vieux plongeur dans le forum IHM
    Réponses: 2
    Dernier message: 10/07/2009, 06h17
  5. Formulaire pour modifier une base mysql
    Par ogn123 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 16/04/2009, 09h32

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