2017-10-05 23 views
0

J'ai le code suivant sur un bouton qui prend la plage sélectionnée dans une Listbox sur un Userform et colle la valeur dans Sheets ("VBA_Data"). Range ("AY1"). Cela fonctionne uniquement avec une sélection et si vous sélectionnez plusieurs sélections dans la zone de liste, la première valeur sera ajoutée à la cellule AY1.Plusieurs valeurs Listbox sélectionnées pour les valeurs de cellule

Je voudrais modifier le code afin qu'il ajoute toutes les valeurs sélectionnées dans la zone de liste, une à chaque cellule dans la colonne AY commençant à AY1. La plage de la Listbox est variable, donc cela peut être pour n'importe quelle quantité de sélections.

Private Sub CommandButtonRemoveSelectedProjects_Click() 

Dim selectioncount As Long 
selectioncount = ListBoxProjectsToRemove.Selected(i) 

Set TxtRng = ActiveWorkbook.Sheets("VBA_Data").Range("AY1") 

For i = 0 To ListBoxProjectsToRemove.ListCount - 1 
If ListBoxProjectsToRemove.Selected(i) Then 
    SelectedItemText = ListBoxProjectsToRemove.List(i) 
End If 
Next i 

TxtRng.Value = SelectedItemText 

End Sub 

Répondre

0

Vous pouvez simplement changer la plage cible pour la cellule suivante.

Set TxtRng = ActiveWorkbook.Sheets("VBA_Data").Range("AY1") 

For i = 0 To ListBoxProjectsToRemove.ListCount - 1 
    If ListBoxProjectsToRemove.Selected(i) Then 
     TxtRng.Value = ListBoxProjectsToRemove.List(i) 
     Set TxtRng = TxtRng.Offset(1) 
    End If 
Next i 
+0

Cela a fonctionné parfaitement, merci. – pwm2017

+0

Votre bienvenue. Merci d'avoir accepté ma réponse –