VBA et Listbox
Bonsoir,
Je suis en train de créer un petit programme de facturation. Au niveau de la facture je n'ai pas de problème, par contre concernant le module de gestion clients que j'ai créé on y accède en cliquant à droite sur le bouton de la facture "gestion client" et là je rencontre des problèmes liés au listbox. Dans la première partie "ajouter, supprimer, modifier les clients", je ne rencontre pas de problèmes pour ajouter dans la feuille 2 (qui correspond à ma base de données clients) les nouvelles données du nouveau client, mais en revanche pour la partie modification je n'arrive pas à trouver le code ou le moyen qui me permettrait de modifier les données du client souhaité grâce à la listbox.
Enfin, dans la deuxième partie "accéder à la base de données", je ne trouve pas non plus le moyen de remplir les informations du client choisi de la liste box dans les champs apparrentés de la facture (nom, prénom, adresse,...).
Merci d'avance pour votre aide.
Cordialement
Bonsoir Heavyrhyme,
Voici trois événements pour obtenir ce que tu souhaites.
Pour le chargement des textbox d'identification du client, il faut double-cliquer sur un client dans la listbox :
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
If .ListIndex > -1 Then
nom = .List(.ListIndex, 0)
prenom = .List(.ListIndex, 1)
adresse = .List(.ListIndex, 2)
cpetville = .List(.ListIndex, 3)
pays = .List(.ListIndex, 4)
tel = .List(.ListIndex, 5)
port = .List(.ListIndex, 6)
email = .List(.ListIndex, 7)
End If
End With
End SubMise à jour de la base de données Clients quand on clique sur Modifier :
Private Sub CommandButton2_Click()
Dim Lig As Long, Tb
If ListBox1.ListIndex > -1 Then
' on récupère la première ligne de la base de données
' client et on ajoute l'index de la ligne du client dans la table
Lig = Feuil2.Range("clients").Row + ListBox1.ListIndex
'On enregistre le client dans la table
With Feuil2
.Cells(Lig, 1) = nom
.Cells(Lig, 2) = prenom
.Cells(Lig, 3) = adresse
.Cells(Lig, 4) = cpetville
.Cells(Lig, 5) = pays
.Cells(Lig, 6) = tel
.Cells(Lig, 7) = port
.Cells(Lig, 8) = email
End With
' On vide les TextBox
For Each Tb In Me.Controls
If TypeName(Tb) = "TextBox" Then Tb = Empty
Next Tb
End If
End SubMise à jour de l'entête de la facture à partir de Userform3:
Private Sub CommandButton1_Click()
Dim Lig As Long, Tb
If ListBox1.ListIndex > -1 Then
' on récupère la première ligne de la base de données
' client et on ajoute l'index de la ligne du client dans la table
Lig = Feuil2.Range("clients").Row + ListBox1.ListIndex
'On enregistre le client dans la table
With Feuil1
.Range("D4") = ListBox1.List(ListBox1.ListIndex, 0) & " " & ListBox1.List(ListBox1.ListIndex, 1)
.Range("D5") = ListBox1.List(ListBox1.ListIndex, 2)
.Range("D6") = ListBox1.List(ListBox1.ListIndex, 3)
End With
End If
End SubSinon, tu as un problème de compilation dans le fichier que tu as mis à disposition, il faut que tu supprimes le second End Sub.