Visual Basic liste déroulante (Combobox??)

achaouac

XLDnaute Nouveau
Bonjour a tous,

j'ai commencé a apprendre Visual Basic il ya deux semaines..L'outil macro est trés puissant...mais je ne connais pas ses limites...

Je me demande s'il est possible de faire ce qui suit:
on a une première feuille qui constitue une base de données..elle comporte une liste de noms et prénoms de presonnes...Mais pour un nom de famille on peut avoir plusieurs prénom....

Sur une deuxième feuille, on a une premiere colonne de noms, et une colonne de prénoms.. Je me demande donc si a partir du nom de famille, et de la base données, peut-on creer une liste deroulante des differents prenoms pour chaque nom donné??

J'ai cherché sur des plusieurs forums et j'ai cru comprendre que l'outil s'appel combobox...MAIS je n'ai pas la moindre idée de comment l'utiliser...

N'hésitez pas a demander plus de details...je vous remercie en avance pour votre aide:)
 

achaouac

XLDnaute Nouveau
Re : Visual Basic liste déroulante (Combobox??)

Bonjour,

Merci beaucoup pour l'orientation...J'apprend plein de choses...Ca m'a vraiment aidé

Mais il me manque un petit quelque chose pour faire marcher mon petite programmation

J'ai donc reussi a creer un userform avec une case text qui devrais contenir le nom de famille et un combobox qui va contenir les differents prenoms pour ce nom de famille...
Et enfin un commandbutton qui fermera le userform et mettra la valeur de la combobox selectionnée dans la cellule indiquée...

Mais le souci c'est de faire appel au userform sur chaque ligne de ma deuxieme feuille si la cellule prenom est vide...
j'ai ecrit donc la macro suivante:

Sub Choix_Prenom()
Set sheet3 = Worksheets("Presence")
Set sheet1 = Worksheets("base")
Dim profil As String
x = 2

Do While sheet3.Cells(x, 1).Value <> ""
If sheet3.Cells(x, 3).Value Like "" Or sheet3.Cells(x, 3).Font.Italic = True Or sheet3.Cells(x, 4).Value <> "" Then
x = x + 1
Else

UserForm1.Show

End If
Loop

J'ai réussi a ecrire les macros pour la recherche des valeurs a mettre dans la combobox:
Private Sub ComboBox1_initialize(ByVal x As Integer)
Set sheet3 = Worksheets("Presence")
Set sheet1 = Worksheets("base ")

y = 2

Do While sheet3.Cells(y, 2).Value <> ""
If sheet1.Cells(y, 1).Value Like sheet3.Cells(x, 3).Value And sheet3.Cells(x, 1).Value Like sheet1.Cells(y, 6).Value Then
UserForm1.ComboBox1.AddItem sheet3.Cells(y, 2).Value
y = y + 1
Else
y = y + 1
End If
Loop
End Sub

une macro pour le nom de famille:
Private Sub TextBox1_initialize(ByVal x As Integer)
Set sheet3 = Worksheets("Presence")
UserForm1.TextBox1.Value = sheet3.Cells(x, 3).Value
End Sub

et pour le boutton de validation:
Private Sub CommandButton1_Click_initialize(ByVal x As Integer)
Set sheet3 = Worksheets("Presence")
sheet3.Cells(x, 4).Value = UserForm1.ComboBox1.Value
Unload UserForm1
End Sub

J'ai ensuite creer une macro userform1_initialize comme suit:
Private Sub UserForm_Initialize()

Call TextBox1_initialize(x)
Call ComboBox1_initialize(x)
Call CommandButton1_Click_initialize(x)

End Sub

En fait je ne sait pas dans quel ordre placer les macros dans le userform, comment les imbriquer...J'espere avoir été assez claire

Merci encore pour votre aide
 

coaben

XLDnaute Nouveau
Re : Visual Basic liste déroulante (Combobox??)

sur le Même sujet , j'ai crée un excel pour la création de devis avec un userform pour ajouter des produits au devis .
mon problème réside dans la rowsource .
j'ai un message d'erreur ??

je vous mes le fichier avec le code complet .

quelqu'un peut il vérifier mon code pour finaliser se project . :)
 

Pièces jointes

  • test_devis.zip
    25.6 KB · Affichages: 472
  • test_devis.zip
    25.6 KB · Affichages: 479
  • test_devis.zip
    25.6 KB · Affichages: 493

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22