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 :

Problème de récupération de donner sur un onglet suite au changement d'une ComboBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Par défaut Problème de récupération de donner sur un onglet suite au changement d'une ComboBox
    Bonjour à tous,

    Voilà, je viens de me remettre au VBA pour un besoin professionnel et j'ai un petit soucis. Le but du logiciel est de gérer le parc automobile de l'entreprise.

    Voici mon problème:

    J'ai un premier userform qui me permet par l'intermédiaire d'une ComboBox de sélectionner 1 voiture. En cliquant sur le bouton OK, je dois accéder à la fiche technique du véhicule qui apparait alors sur un 2nd userform.

    C'est là que j'ai mon problème.

    Sachant qu'à chaque voiture correspond une feuille excel, comment puis-je récupérer les informations poues afficher sur le 2nd userform ?

    ********************************************************************************************************************

    J'ai penser à une solution qui parait être assez propre mais j'ai un autre soucis dessus ^^

    Ma solution:

    Créer une feuille avec une correspondance entre le nom de la voiture de la ComboBox et le nom de la feuille correspondante.

    Nom_ComboBox Nom_feuille
    Voiture n°1 FT_Voiture n°1
    Voiture n°2 FT_Voiture n°2
    Voiture n°3 FT_Voiture n°3
    Voiture n°4 FT_Voiture n°4
    Voiture n°5 FT_Voiture n°5
    Voiture n°6 FT_Voiture n°6
    Voiture n°7 FT_Voiture n°7
    Voiture n°8 FT_Voiture n°8
    Voiture n°9 FT_Voiture n°9
    Voiture n°10 FT_Voiture n°10

    Et là, je voudrais savoir comment je peux arriver à cette étape là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TB_FT_titre.Caption = Worksheets("FT_voiture n°1").Cells(1, 1)

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour perchman,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = Application.Index(Sheets("LaFeuille").Range("B:B"), Application.Match(Me.ComboBox1, Sheets("LaFeuille").Range("A:A"), 0))
    TB_FT_titre.Caption = Worksheets(x).Cells(1, 1)

  3. #3
    Membre confirmé Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = Application.Index(Sheets("LaFeuille").Range("B:B"), Application.Match(Me.ComboBox1, Sheets("LaFeuille").Range("A:A"), 0))
    TB_FT_titre.Caption = Worksheets(x).Cells(1, 1)
    Merci de cette réponse

    Je vais la tester sans la comprendre, puis :

    - si ça marche, je vais chercher à comprendre la syntaxe.

    - si ça ne marche pas, ben je vais chercher à comprendre la syntaxe pour me corriger...

    Bonne journée Isabelle

  4. #4
    Membre confirmé Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = Application.Index(Sheets("LaFeuille").Range("B:B"), Application.Match(Me.ComboBox1, Sheets("LaFeuille").Range("A:A"), 0))
    TB_FT_titre.Caption = Worksheets(x).Cells(1, 1)
    Bon, j'ai testé, et ça n'a pas marché...

    J'ai voulu comprendre, et ça n'a pas marché...

    J'ai voulu allumer mon neurone, mais ça n'a pas marché !!

    Bon, en étant plus sérieux:

    1) Qu'est-ce qui se cache derrière Application.Index ?

    2) "LaFeuille": c'est une variable quelconque ?

    3) Pourquoi tu utilises Range("B:B") ?

    4) Qu'est-ce qui se cache derrière Application.Match ? (ça doit me permettre de comprendre le 0 en bout de ligne)

    5) C'est quoi ME ?

    Je suis désolé pour toutes ces questions, mais là... je suis perdu

  5. #5
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour perchman,

    c'est une reprise en vba des fonctions de feuille de calcul INDEX et EQUIV,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(retourné la valeur de la plage y à la même ligne de x;EQUIV(valeur_cherché;chercher_dans la plage x;0))
    "LaFeuille" ou "Feuil1" doit être remplacer par le nom de la feuille ou se trouve les données de ton tableau

    cette formule retourne le numéro de ligne trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = Application.Match(Me.ComboBox1, Sheets("Feuil1" Range("A:A"), 0))
    sur la feuille de calcul on écrit la fonction Match comme ceci, si "mot" = Me.ComboBox1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV("mot";Feuil1!A:A;0)

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/05/2011, 12h29
  2. Réponses: 4
    Dernier message: 02/03/2010, 16h09
  3. Réponses: 17
    Dernier message: 22/08/2007, 14h21
  4. Réponses: 2
    Dernier message: 04/06/2007, 14h44
  5. Problème d'évènement click sur mon onglets
    Par bitou11 dans le forum Access
    Réponses: 7
    Dernier message: 02/08/2006, 23h24

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