Macro ajouter données listbox dans feuille [Résolu/Fermé]

Signaler
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020
-
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020
-
Bonjour,

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 :



Quelqu'un pourrait-il m'aider ?

1 réponse

Messages postés
6993
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
564
Bonjour,

comme ceci:

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

Messages postés
6993
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
564
En multisélection:

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


voilà
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020
>
Messages postés
6993
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020

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 ?

Merci !
Messages postés
6993
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
564 >
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020

Essaie ceci:

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


@+ Le Pivert
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020
>
Messages postés
6993
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020

Ça marche niquel merci beaucoup !
Messages postés
62
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
31 mars 2020

Parfait ! Merci beaucoup :D