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 :

Acceder a la cellule "choisie" via un combobox [XL-97]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Par défaut Acceder a la cellule "choisie" via un combobox
    Bonjour a tous,

    Voici mon probleme :
    J'ai cree un userform a partir d'une feuille Excel ou les cellules A1 a A120 contiennent des noms d'articles. J'ai alimente une combobox avec cette plage de cellule A1:A120.
    A chaque article correspond un prix : le prix de la cellule A1 se trouve dans la cellule B1, le prix de la cellule A2 se trouve dans la cellule B2, etc...

    Je souhaite afficher au sein du formulaire le prix de l'article selectionne via le combobox. Si l'utilisateur choisit l'article dont le nom se trouve dans la cellule A1, le prix de la cellule B1 doit s'afficher dans le textbox de mon formulaire.

    Je pourrais realiser le code suivant :
    si combobox.value = "valeur de la cellule A1", alors textbox.value = "valeur de la cellule B1"

    Mais j'ai 120 cases et les valeurs des cellules ont des noms compliques...

    Je souhaiterais donc acceder a la cellule qui est choisie via le combobox, et dire : textbox.value = "valeur de la cellule a droite de la cellule choisie par le combobox"
    J'ai donc imagine utiliser un offset mais je n'arrive pas a comprendre comment acceder a la valeur de la cellule choisie via le combobox !

    En esperant que mes explications ont ete claires,
    Et en vous remerciant d'avance pour votre aide,

    Chloe

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Il te faut donc chercher le contenu de la ComboBox dans la plage de recherche (ici A1:A10). Pour cela, tu peux, par exemple, utiliser la méthode .Find comme ceci :
    Ce code est associé à l'événement Click d'un bouton de commande. Il s'agit juste d'un exemple...
    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
    Private Sub CommandButton1_Click()
    Dim Trouve As Range, Plage As Range
    Dim Valeur_cherchee As String
     
    If ComboBox1.Value = "" Then Exit Sub ' si la liste est vide on ne fait rien
     
    With Sheets("Feuil1") ' à adapter le nom de la feuille concernée
    Set Plage = .Range("A1:A120") ' à adapter, mets ici ta plage de recherche
    Valeur_cherchee = ComboBox1.Value
        Set Trouve = .Range(Plage.Address).Cells.Find(what:=Valeur_cherchee, Lookat:=xlWhole)
            If Trouve Is Nothing Then
                MsgBox "Pas trouvé"
            Else
                TextBox1 = Trouve.Offset(0, 1).Value
            End If
    End With
    Set Trouve = Nothing
    Set Plage = Nothing
    End Sub
    N'hésite pas à revenir pour des explications ou si je me suis trompé

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 53
    Par défaut
    Bonjour Chloe,

    Avec quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ComboBox1_Change()
    If Not (Range(Cells(1, 1), Cells(120, 1)).Find(ComboBox1.Value) Is Nothing) Then
        TextBox1.Value = Range(Cells(1, 1), Cells(120, 1)).Find(ComboBox1.Value).Offset(0, 1)
    Else
        TextBox1.Value = "Article inconnu"
    End If
    End Sub
    Cordialement

    R

    Edit : bonjour Pikaju, je n'avais pas rafraichi avant de poster.

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Par défaut
    Merci beaucoup !
    J'ai teste la premiere solution, et en changeant ce qu'il fallait changer, tout marche parfaitement !

    Ce forum est super : merci a tous les deux pour vos reponses.

    Chloe

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

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