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 transférer les données d'une ListBox vers une TextBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2016
    Messages : 70
    Par défaut Comment transférer les données d'une ListBox vers une TextBox
    Salut le forum
    je bloc sur un problème de transfère de données de la ListBox vers Les TextBox afin de faciler la
    lecture à l'utilisateur. Ainsi, lorsqu'il clique sur une ligne de la ListBox, les données de la ligne sont
    rapatriées vers les TextBox pour consulter l'historique des factures.
    J'ai écris ce code qui ne fonctionne malheureusement pas
    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
     
      Private Sub StoryList_Click()
      Dim i As Integer
      Dim LinSuiv As String
      LinSuiv = Sheets("BD-FACTURATION").Range("C1048576").End(xlUp).Row + 1 '---dernière ligne du tableau
      For i = 2 To LinSuiv
          While StoryList.Text = Range("C", i).Value
          Me.TxtDte.Value = Range("A" & i).Value
          Me.TxReference.Value = Range("B" & i).Value
          Me.TxNumFacture.Value = Range("C" & i).Value
          Me.txDesignation.Value = Range("D" & i).Value
          Me.TxNomClient.Value = Range("E" & i).Value
          Me.TxQteEntree.Value = Range("F" & i).Value
          Me.TxQteSortie.Value = Range("G" & i).Value
          Me.TxPrixUnitaire.Value = Range("H" & i).Value
          Me.txMontant.Value = Range("I" & i).Value
          Me.TxObs.Value = Range("J" & i).Value
          'End If
          i = i + 1
        Wend
      Next i
    End Sub
    Cordialement !

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Tu nous dis vouloir afficher dans des textboxes des données d'une listbox et nous montres, sans explication aucune, un code alimentant des textboxes à partit de cellules d'une feuille de calcul. Explique ce mécanisme.
    Il semble par ailleurs que tu cliques sur un élément d'une listbox et en utilises la propriété text, qui, elle ne correspond :
    - qu'à l'élément cliqué
    - qu'au contenu de la 1ère colonne de l'élément cliqué, si listbox multicolonne
    Montre-nous s'il te plait par quel code tu as abondé la listbox en nous précisant :
    - si cette listbox se trouve sur une feuille de calcul ou sur un userform
    - si elle a été liée à une plage de cellules et, le cas échéant, la valeur de la propriété de liaison

  3. #3
    Membre confirmé
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2016
    Messages : 70
    Par défaut
    Bonjour

    La ListBox se trouve sur un UserForm et la RowSource de la ListBox est une plage de cellule nommée
    de 10 colonnes dont 10 colonnes également pour la ListBox. Le souci est de transférer les
    données de la ligne de cette ListBox à l'évenement Click Vers les TextBox. J'utilise un code
    de meme type mais qui fontionne avec une ListBox d'une Seule colonne
    que voici

    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
    Private Sub ListBox1_Click()
    Dim i As Integer
    Dim Var As String
    Var = Sheets("gestion").Range("D65000").End(xlUp).Row + 1
    For i = 1 To Var
      While ListBox1.Text = Range("E" & i).Value
        TextBox1.Text = Range("D" & i).Value
        TextBox2.Text = Range("E" & i).Value
        TextBox3.Text = Range("F" & i).Value
        TextBox4.Text = Range("I" & i).Value
        TextBox5.Text = Range("G" & i).Value
        If Dir(ThisWorkbook.Path & "\photos" & "\" & TextBox1 & ".jpg") = "" Then
        Me.Image1.Picture = LoadPicture("")
        Else
        Me.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\photos" & "\" & TextBox1 & ".jpg")
        End If
        i = i + 1
      Wend
    Next i
    End Sub
    à l'évenement Click de la ListBox, les TextBox et la zone d'image sont alimentés
    cette méthode ne fonctionne pas avec une ListBox Multicolonne et
    c'est ce que je souhaite faire, n'étant pas un pro de la programmation.

    Merci à vous.

    Cordialement

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je comprends bien que tu n'es pas un "pro", mais, lorsque l'on est débutant, on commence par lire ce qui est exposé dans l'aide VBA.
    Bon ...
    Voilà ma réponse de principe e-t je te laisse continuer sur ces bases :
    1) Lorsque l'on clique sur une listbox, l'élément sélectionné a pour index la propriété Listindex de la listbox (qu'elle soit multicolonne ou non)
    2) la première colonne d'une listbox multicolonne est la colonne 0, la seconde, la colonne 1, etc ...
    3) la valeur en colonne 3 (par exemple) correspondant à un click sur une listbox nommée Listbox1 est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Listbox1.list(Lisbox1.listindex,2)
    Je te laisse maintenant t'y mettre (j'y tiens)

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

    En complément de la réponse d'unparia (salutations Jacques au passage), j'aimerais que tu nous dises à quoi te sert ta boucle (identifiée dans le code ci-dessous) :
    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
    Private Sub ListBox1_Click()
    Dim i As Integer
    Dim Var As String
    Var = Sheets("gestion").Range("D65000").End(xlUp).Row + 1
    For i = 1 To Var
      While ListBox1.Text = Range("E" & i).Value ' <======================================= DEBUT DE BOUCLE
        TextBox1.Text = Range("D" & i).Value                                                                                               
        TextBox2.Text = Range("E" & i).Value                                                                                                
        TextBox3.Text = Range("F" & i).Value                                                                                                
        TextBox4.Text = Range("I" & i).Value                                                                                                
        TextBox5.Text = Range("G" & i).Value                                                                                               
        If Dir(ThisWorkbook.Path & "\photos" & "\" & TextBox1 & ".jpg") = "" Then                                               
        Me.Image1.Picture = LoadPicture("")                                                                                                  
        Else                                                                                                                                              
        Me.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\photos" & "\" & TextBox1 & ".jpg")                                                                                               
        End If                                                                                               
        i = i + 1                                                                                               
      Wend                           ' <================================================== FIN DE BOUCLE                                                                     
    Next i
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2016
    Messages : 70
    Par défaut
    Bonjour à vous !

    Merci pour vos contributions, Le petit bout de code de Unparia fonctionne, ça marche comme je souhaite.
    La boucle utilisé dans le code précédent n'était qu'un test puisque, je ne réussissais pas l'opération. Puisque je
    voulais parcourir la feuille, recupérer les données puis transférer vers les TextBox par l'évenement ListBox_Click (Chose impossible,
    je me rend compte !). C'est la raison du While dans le code (qui, je me rend également compte n'as pas de place !)
    Le nouveau code, le voici.
    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
    26
    27
    28
    29
    Private Sub StoryList_Click()
    On Error Resume Next
    Me.ImgStoryList.Visible = True
    Me.TxtDte.Value = StoryList.List(StoryList.ListIndex, 0)
    Me.TxReference.Value = StoryList.List(StoryList.ListIndex, 1)
    Me.TxNumFacture.Value = StoryList.List(StoryList.ListIndex, 2)
    Me.txDesignation.Value = StoryList.List(StoryList.ListIndex, 3)
    Me.TxNomClient.Value = StoryList.List(StoryList.ListIndex, 4)
    Me.TxQteEntree.Value = StoryList.List(StoryList.ListIndex, 5)
    Me.TxQteSortie.Value = StoryList.List(StoryList.ListIndex, 6)
    Me.TxPrixUnitaire.Value = StoryList.List(StoryList.ListIndex, 7)
    Me.txMontant.Value = StoryList.List(StoryList.ListIndex, 8)
    Me.TxObs.Value = StoryList.List(StoryList.ListIndex, 9)
    On Error GoTo 0
    End Sub
    Private Sub TxReference_Change()
    On Error Resume Next
    If Dir(ThisWorkbook.Path & "\photos" & "\" & TxReference & ".jpg") = "" Then
      ImgStoryList.Picture = LoadPicture("C:\Windows\Web\Wallpaper\Windows\Img0.jpg")
      Exit Sub
    End If
    If Dir(ThisWorkbook.Path & "\photos" & "\" & TxReference & ".jpg") = "" Then
      ImgStoryList.Picture = LoadPicture("")
      Exit Sub
    Else
      ImgStoryList.Picture = LoadPicture(ThisWorkbook.Path & "\photos" & "\" & TxReference & ".jpg")
    End If
    On Error GoTo 0
    End Sub
    Et c'est parfait. Merci encore

    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2016, 16h49
  2. Réponses: 2
    Dernier message: 09/08/2010, 09h05
  3. Comment transférer les données d'une liste de choix ?
    Par rachid31 dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2007, 13h35
  4. comment transférer les données entre 2 pc?.
    Par unix27 dans le forum Administration
    Réponses: 12
    Dernier message: 10/04/2006, 07h48
  5. Réponses: 16
    Dernier message: 20/03/2006, 23h21

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