Microsoft 365 besoin d'aide pour listbox excel vba 365

sylviecro

XLDnaute Nouveau
Bonjour,

Très débutante en vba, j'ai cherché sur le forum, mais je ne trouve pas ce que je cherche. Tout est beaucoup plus compliqué que ce que je désire.

Voilà mon problème : j'ai un listeBox sur USF (relié à une liste à Rowsource sur une autre feuille). J'aimerais juste que l'on puisse cliquer sur un premier choix de cette listeBox et que le choix se s'écrive dans une feuille à une cellule ex ; a1. Et qu'on puisse aussi faire un 2e et 3e choix et que ça s'écrive à la suite du 1er.

Je me demande juste si j'ai vraiment besoin d'une listebox ou si un comboBox peut faire l'affaire! De toute façon l'un ou l'autre je sais pas comment faire le code.

Merci de votre aide.

Sylvie
 
Solution
Bonjour,


VB:
Dim f
Private Sub UserForm_Initialize()
  Set f = Sheets("feuil1")
  Set Rng = f.Range("F2:F" & f.[F65000].End(xlUp).Row)
  Me.ListBox1.List = Rng.Value
  Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub ListBox1_Change()
  temp = ""
  For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then temp = temp & Me.ListBox1.List(i)
  Next i
  f.[a1] = temp
End Sub

Boisgontier
Merci beaucoup de votre réponse

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,


VB:
Dim f
Private Sub UserForm_Initialize()
  Set f = Sheets("feuil1")
  Set Rng = f.Range("F2:F" & f.[F65000].End(xlUp).Row)
  Me.ListBox1.List = Rng.Value
  Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub ListBox1_Change()
  temp = ""
  For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then temp = temp & Me.ListBox1.List(i)
  Next i
  f.[a1] = temp
End Sub

Boisgontier
 

Pièces jointes

  • Classeur1.xlsm
    19.2 KB · Affichages: 11

sylviecro

XLDnaute Nouveau
Bonjour,


VB:
Dim f
Private Sub UserForm_Initialize()
  Set f = Sheets("feuil1")
  Set Rng = f.Range("F2:F" & f.[F65000].End(xlUp).Row)
  Me.ListBox1.List = Rng.Value
  Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub ListBox1_Change()
  temp = ""
  For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then temp = temp & Me.ListBox1.List(i)
  Next i
  f.[a1] = temp
End Sub

Boisgontier
Merci beaucoup de votre réponse
 

Discussions similaires

Réponses
21
Affichages
1 K
  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
301
  • Question
Microsoft 365 webbrowser
Réponses
20
Affichages
855

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG