Programmer une textbox sous vba

Résolu
Bernard67360 -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,
J'ai crée une listbox dans laquel j'ai repoertorié differents produits, j'ai ensuite crée une textbox, et j'aimerai bien que lorsque je clique sur un produit dans la listbox, la référence due ce produit s'affiche dans la textbox. Sur une feuille excel , dans la colonne A, j'ai listé tous mes produit, et dans la colonne B, toutes les références associées.
Quelqu'un pourrait - il me dépanner, car je ne trouve pas le bon programme.
Je vous remercie d'avance.
Configuration: Windows XP Internet Explorer 6.0

2 réponses

  1. Samygale Messages postés 46 Statut Membre 1
     
    Bonjour,
    Vous pouvez mettre les deux colonnes (1 Prod, 2 Ref) dans vote liste déroulante (propriété ColumnCount à 2), et ajouter un évènement "sur clic" :

    TextBox1.Value = ComboBox1.Column(1) (0 étant ici la colonne 1, 1 la colonne 2, etc...)
    0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    sinon une autre méthode

    à l'initialisation du userform
    personnellement je déclare la variable NbLig en public au niveau du module

    public NbLig as integer

    Private Sub UserForm_Initialize()
    
     Sheets(1).Select ' la feuille ou se trouve ta base
    NbLig = Range("a1").CurrentRegion.Rows.Count
    For i = 1 To NbLig
        UserForm1.ListBox1.AddItem Range("a1").Offset(i, 0).Value
        
    Next
    
    End Sub


    puis le code pour renseigner le textbox

    Private Sub ListBox1_Click()
    
    With Worksheets(1).Range("a1:a" & NbLig)
        Set c = .Find(UserForm1.ListBox1.Value, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                UserForm1.TextBox1.Value = c.Offset(0, 1).Value
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    
    End Sub


    il existe d'autres manière de faire avec des variables de type tableau par exemple.

    A+
    0