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 :

UserForm pour trier une base


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Par défaut UserForm pour trier une base
    Bonjour,

    Je possède actuellement une base de produits qui comportent plusieurs caractéristiques. Je souhaiterais créer une interface tel un moteur de recherche pour qu'un internaute ait accès à une sélection beaucoup plus fine des produits pouvant lui correspondre.

    J'ai aussi une autre table que j'ai appelé "Relations" qui répertorie toutes les relations besoin client/requete produit.

    Je m'explique:

    un produit a une largeur max et un poids max, un matériau et une forme.
    Je ne peux pas demander à un internaute le poids car trop compliqué. Du coup, pour une certaine catégorie de "besoins clients", j'ai une certaine catégorie de produit et c'est cette table qui fait le lien.

    Je suis plutôt débutant en VBA. En recherchant des travaux identiques sur le net, je n'ai pas trouvé la démarche à suivre pour utiliser les données rentrées par un utilisateur dans les champ d'un formulaire UserForm pour filtrer ma base.

    Pour le moment, j'ai fais une pseudo analyse descendante:

    1. On remplit le formulaire puis on valide
    2. On stocke les données rentrées par l'utilisateur dans un tableau
    3. On execute une requête multi-tri correspondant au besoin du client dans la table "Relations"
    4. On stocke les données sélectionnée dans un tableau
    5. On execute une nouvelle requete multi tri en utilisant les filtres stockés dans le tableau précédent.
    6. On affiche les résultats.

    Mon userForm appelé form contient:

    • 4 Combobox
    • un bouton de commande


    Je souhaite que certains de mes Combobox soient dynamiques. A savoir, quand l'internaute fait un choix dans le premier Combobox, les suivants changent leurs options selon le choix de l'utilisateur.

    J'ai donc plusieurs questions:

    Comment remplir les Combobox avec les choix que je veux?
    Comment utiliser le choix de l'utilisateur pour faire un filtre sur une feuille?
    Toute la macro de tri doit-elle être dans Private Sub CommandButton1_Click(),


    Merci d'avance.

    Si vous voulez plus de précisions, n'hésitez pas à me le faire remarquer

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Tu as les évenements de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
     
    End Sub
    Quand tu changes n'importe quelle combobox les autres se vident et se rechargent en fonction du choix dans les autres.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Par défaut
    Merci. Je suis entrain de me débrouiller.

    Cependant, saurais-tu comment faire apparaitre un combobox2 quand le choix de la combobox1 est fait ?

    Savez-vous comment rendre un champ obligatoire? Quelquechose du style, Si la valeur du champ est nulle alors on affiche un message box?

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    bah tu mets dans ton combobox1.change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If lenomdetonobjet.value = "" then
    msgbox("C'est vide")
    Else
    'Ce que tu veux
    End if

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Par défaut
    Merci bien.

    Et au niveau du tri, lorsque je récupère la valeur par laquelle je vais trier ma base, je la stocke. Mais comment n'afficher que les lignes filtrées? Comment filtrer une base avec plusieurs valeurs?

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    filtre personnalisé

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/06/2005, 17h55
  2. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  3. [PowerAMC] Comment s'en servir pour creer une base?
    Par Elmilouse dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2004, 09h53
  4. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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