J'ai crée un formulaire avec une listbox multichoix qui contient une liste représentée dans une feuille.
Je souhaite crée un bouton sur le formulaire avec un code qui permet d'ajouter les éléments de la liste qui sont sélectionnés en insérant une ligne à chaque fois. La raison est parce que je veux ajouter les éléments sélectionnés dans une autre feuille dans un endroit spécifique sans que cela interfère avec les autres données de la feuille.
Voici une représentation de ce que je veux faire :
Dim i As Byte
Dim val As String
Dim myCell, ligne
Set myCell = Application.InputBox( _
prompt:="Sélectionnez la ligne en dessous", Type:=8)
ligne = myCell.Row
'boucle sur les éléments de la listbox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
val = ListBox1.List(i)
End If
Next i
If val = "" Then Exit Sub
Rows(ligne & ":" & ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = val
Dim i As Byte
Dim val As String
Dim myCell, ligne
Set myCell = Application.InputBox( _
prompt:="Sélectionnez la ligne en dessous", Type:=8)
ligne = myCell.Row
'boucle sur les éléments de la listbox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
val = ListBox1.List(i)
If val = "" Then Exit Sub
Rows(ligne & ":" & ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = val
End If
Next i
Salut ! Je reviens sur cette question car j'ai un petit problème. Quand j'ajoute des sélections de la listbox et que je le copie sur ma feuille, l'insertion se fait à l'envers. La dernière sélection est insérée en premier et ainsi de suite.
Est-il possible d'insérer les sélections en ordre ?
Dim i As Byte
Dim val As String
Dim myCell, ligne
Set myCell = Application.InputBox( _
prompt:="Sélectionnez la ligne en dessous", Type:=8)
ligne = myCell.Row
'boucle sur les éléments de la listbox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
val = ListBox1.List(i)
If val = "" Then Exit Sub
Rows(ligne & ":" & ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = val
ligne = ligne + 1
End If
Next i
voilà
Est-il possible d'insérer les sélections en ordre ?
Merci !
@+ Le Pivert