Ajouter des lignes à une listbox
Bonsoir,
Je réalise un programme dans lequel je suis amené à compléter une listbox à la demande de l'utilisateur. Vous trouverez ci dessous une version d'essai correspondant à mon besoin. Il me sert à tester le fonctionnement de ce morceaux pour lequel je "pêche":?:?
J'ai un formulaire Userform1 avec une listbox et 3 boutons : 1 bouton remplir la listbox (en automatique à l'ouverture sur mon programme), 1 bouton ajout d'une ligne qui ouvre un autre userform, 1 bouton qui renvoie toutes les données de la listbox vers une feuille excel.
ci dessous le code :
Code:
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
| Private Sub CommandButton1_Click()
'charge le contenu de la listbox list
UserForm1.list.RowSource = "f1!a2:b7"
End Sub
Private Sub CommandButton2_Click()
'charge le form 2 pour ajout et ajoute une liste à la listbox list2
Load UserForm2
UserForm2.List2.RowSource = "f2!a2:b7"
UserForm2.Show
End Sub
Private Sub CommandButton3_Click()
'copier le contenu de listbox list dans la feuille excel f1
Sheets("f1").Range("d2").Resize(UserForm1.list.ListCount, 2) = UserForm1.list.list()
Unload UserForm1
End Sub |
Mon problème réside dans le second formulaire userform2 dans lequel se trouve une listbox list2 dans le quel l'utilisateur coche une case suite réglage de la propriété liststyle à fmListStyleOption. L'utilisateur coche une ou plusieurs lignes et clique sur un bouton commandbutton permet de valider son choix et normalement ajouter cette ou ces ligne(s) dans la listbox list1 dans Userform1.
J'obtient le message suivant dans la configuration actuelle : erreur d'éxécution 70, accés refusé.
J'ai essayé plusieurs formes sans succès et j'ai eu des messages différents mais jamais un résultat.
Ci dessous le code :
Code:
1 2 3 4 5 6 7 8 9
| Private Sub CommandButton1_Click()
MsgBox UserForm2.List2.Value
UserForm1.list.SetFocus
UserForm1.list.AddItem UserForm2.List2.Value
Unload UserForm2
End Sub |
Merci encore pour votre aide précieuse
solution intéressante mais toujours bloqué
Bonsoir,
Je confirme à Defluc que les paramètres sont bien ceux qu'il cite.
J'ai essayé votre solution Rdurupt, elle est intéressante, en particulier sur son fonctionnement.
S'il existe un tutoriel sur ces fonctionnements modal cela m'intéresse.
Pour infos, j'ai utilisé le focus en pensant réglé le soucis mais cela n'a pas avancé. Le test sans le focus me donne le même résultat.
PAR CONTRE, nous sommes toujours bloqué car j'ai le même message d'erreur que ci dessus et le débogueur me signale cette ligne :
Code:
Me.List.AddItem UserForm2.List2.Value
A votre avis, y aurait il pas un problème de type de champs ?
Sinon la msgbox
Code:
MsgBox UserForm2.List2.Value
me sert uniquement à vérifier le contenu de la donnée et sera retiré au final.
:?:? Je suis novice et commence à vraiment caler !!!!!:roll:
Merci pour votre aide
correctif dernier message ci dessus
Après essai, j'ai procédé à cette rectification car le code planté.
Il signalait un appel d'objet incomplet sur les 2 lignes corrigées
Code:
1 2 3 4 5 6 7 8 9 10
|
'charge le form 2 pour ajout et ajoute une liste à la listbox list2
Private Sub CommandButton2_Click()
UserForm2.List2.RowSource = "f2!a2:b7"
UserForm2.Show vbModal
sheets("f1").range("a8").value= UserForm2.List2.List( UserForm2.List2.ListIndex,0)
sheets("f1").range("b8").value= UserForm2.List2.List( UserForm2.List2.ListIndex,1)
me.list.RowSource = "f1!a2:b8"
Unload UserForm2
end sub |
sur le bouton commandbutton1 de l'userform2 il y a le code :