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 :

Comment alimenter un textbox depuis une plage de cellules, pointé au travers d'une listbox ? [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut Comment alimenter un textbox depuis une plage de cellules, pointé au travers d'une listbox ?
    Bonjour a tous !

    Je suis en train de créer un fichier excel pour la gestion de produit via des useform.


    Nom : 2016-04-07.png
Affichages : 723
Taille : 121,6 Ko


    J'utilise pour ce faire une listbox que j'alimente via une colonne 'code_produit'. Tout fonctionne jusque là.
    Maintenant, je veux que mes textbox soient mises à jour avec les spécifications du produit sélectionné via ma listbox.
    Et c'est là que je me casse les dents depuis 3 jours. J'ai bien trouvé des pistes et des astuces sur le net mais je n'y arrive tout simplement pas.
    Ci joint une partie du code de test, pour que vous puissiez mieux apréhender ce que je veux faire.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'Verifier si l item est selecté
    If List_Produits.ListIndex = -1 Then
    MsgBox "Aucun produit sélectionné", vbExclamation, "Erreur de saisie"
    Else
    MsgBox "Vous avez sélectionné : " & List_Produits.Value, vbInformation, "Message de confirmation"
    'Ed_Nom = JE SAIS PAS QUOI METTRE au secours !
    End If
    Je veux pouvoir utiliser la valeur de la liste produit pour m'en servir comme pointeur et ainsi extraire mes données et remplir mes textbox.

    Si quelqu'un a une idée, je suis preneur.

    Merci à tous !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    Une piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Dim CtrI As Long
     
        If List_Produits.ListCount > 0 Then
            For CtrI = 0 To List_Produits.ListCount - 1
                If List_Produits.Selected(CtrI) = True Then
                     MsgBox "Vous avez sélectionné : " & List_Produits.List(CtrI), vbInformation, "Message de confirmation"
                End If
            Next CtrI
     
         End If
    Cordialement.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Bonjour kressano, bonjour Eric.

    Si tu peux mettre à disposition un exemple de ligne avec le produit et les différentes valeurs à afficher dans les TextBox ça permettrait de voir la solution possible à fournir.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour Eric et Benoit

    J'ai bien vu ton code Eric, et c'est justement ce que je veux éviter : passer par un index numérique.
    En fait, je tiens vraiment à travailler avec le code_produit. Il me faudrait une astuce en VBA du genre =RECHERCHEV($B$8;produits;2;FAUX)

    Nom : 2016-04-08 (2).png
Affichages : 555
Taille : 27,9 Ko

    Comme tu peux voir Benoit, j'ai une listbox qui me permet de choisir le produit voulu. Lorsque je clique sur un en particulier et ensuite sur le bouton modifier, je récupère la valeur contenue dans value.

    Nom : 2016-04-08.png
Affichages : 513
Taille : 38,8 Ko

    C'est avec ce qui est stockée dans value que je souhaite ensuite pointer dans mon tableau excel, plage code_produit, pour extraire les données dans chaque colonnes et les placer dans un textbox.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kressano Voir le message
    C'est avec ce qui est stockée dans value que je souhaite ensuite pointer dans mon tableau excel, plage code_produit, pour extraire les données dans chaque colonnes et les placer dans un textbox.
    Un exemple dans le fichier joint Pièce jointe 206364

    Pièce jointe 206365

    Le code sur clic du ListBox :

    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
     
    Private Sub List_Produits_Click()
     
     Dim CtrI As Long
     
        If List_Produits.ListCount > 0 Then
            For CtrI = 0 To List_Produits.ListCount - 1
                If List_Produits.Selected(CtrI) = True Then
     
                     For Each CelluleProduits In AireProduits
                         If CelluleProduits = List_Produits.List(CtrI) Then
                            TextBoxLibelle = CelluleProduits.Offset(0, 1)
                            TextBoxDisplay = CelluleProduits.Offset(0, 2)
                            TextBoxBarres = CelluleProduits.Offset(0, 3)
                            TextBoxShipper = CelluleProduits.Offset(0, 4)
                         End If
     
                     Next CelluleProduits
     
                End If
            Next CtrI
     
         End If
     
    End Sub

    Cordialement.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour Eric, désolé de ne pas avoir répondu avant, un mariage (le mien entre autres ) m'a monopolisé .

    Bref, je me replonge dans le code aujourd'hui et j'ai trouvé la solution grace a toi. Encore merci de ton temps !

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

Discussions similaires

  1. [XL-2010] Somme de plages de cellules de différentes feuilles vers une plage de cellules
    Par Tomy_XL dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/09/2015, 10h14
  2. Réponses: 3
    Dernier message: 10/06/2015, 09h34
  3. Réponses: 4
    Dernier message: 10/04/2012, 09h27
  4. Valider une plage de cellules sur plusieurs feuilles via une listbox
    Par lio59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/08/2009, 13h52
  5. Réponses: 3
    Dernier message: 20/07/2009, 12h37

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