VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

fb62840

XLDnaute Impliqué
Bonjour à toutes et à tous,

Je sollicite votre aide afin de réussir à programmer le formulaire du fichier en pièce-jointe afin d'obtenir le résultat suivant :

Sélection dans une listbox de plusieurs lignes pour les placer dans une seconde listbox et copier les données sur une autre feuille.

Le fichier joint devrait être plus clair.

Merci pour votre aide
 

Pièces jointes

  • Choix Noms.xls
    57.5 KB · Affichages: 47
  • Choix Noms.xls
    57.5 KB · Affichages: 54
  • Choix Noms.xls
    57.5 KB · Affichages: 50

Bebere

XLDnaute Barbatruc
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

bonjour fb62840,le Forum
les données sont effacées dans feuille choisi,bouton confirme
si tu veux les garder il faut un autre code
les items remis sont triés(module1)
 

Pièces jointes

  • Choix Noms.xls
    77.5 KB · Affichages: 46
  • Choix Noms.xls
    77.5 KB · Affichages: 50
  • Choix Noms.xls
    77.5 KB · Affichages: 40

fb62840

XLDnaute Impliqué
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Merci pour cette proposition,

Serait-il possible de faire une "multi sélection" c'est à dire,
je choisi dans la colonne de gauche, je clique sur la flèche d'ajout,
j'en choisi un autre, je clique,
et ainsi de suite,
ainsi je pourrais sélectionner une multitude plutôt qu'à l'unité.

Merci
 

natorp

XLDnaute Accro
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Re bjr Fb et bjr Bebere

Question pour Bebere : Serait-il possible de réactualiser la liste de gauche tant que l'on n'a pas cliqué sur "confirmer" et si, après avoir choisi Nom1 on choisit Nom2. Nom1 disparait de la liste de droite mais ne revient pas à gauche.

Cordialement, Gérard
 

fb62840

XLDnaute Impliqué
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Oui, en effet je ne l'avais pas essayé en multi sélection mais en clic sur un nom clic sur le bouton de sélection

Par contre, et cela rejoint la demande de natorp, serait-il possible de procéder à plusieurs multisélection avant de confirmer

par exemple : sélection les noms de 1 à 3 cliquer sur ajouter, puis cliquer sur les noms de 5 à 7 et cliquer sur ajouter et qui aurait pour effet de rajouter la série des noms sous celle déjà présente

Merci
 

natorp

XLDnaute Accro
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

fb

dans le code du userform il suffit de supprimer la ligne :

Code:
Private Sub Image1_Click()
    Dim I As Long

===>    Me.ListBox2.Clear   <===

    For I = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(I) Then
            Me.ListBox2.AddItem Me.ListBox1.List(I, 0)
            Me.ListBox2.List(Me.ListBox2.ListCount - 1, 1) = Me.ListBox1.List(I, 1)
            Me.ListBox2.List(Me.ListBox2.ListCount - 1, 2) = I
        End If
    Next I

    For I = Me.ListBox1.ListCount - 1 To 0 Step -1
        If Me.ListBox1.Selected(I) Then
            Me.ListBox1.RemoveItem I
        End If
    Next I

End Sub

Cordialement, Gérard
 

Bebere

XLDnaute Barbatruc
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Natorp
ajout d'un bouton réini
et si ajout dans listbox2 efface le précédent
 

Pièces jointes

  • Choix Noms.xls
    80 KB · Affichages: 55
  • Choix Noms.xls
    80 KB · Affichages: 56
  • Choix Noms.xls
    80 KB · Affichages: 51

natorp

XLDnaute Accro
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Bonsoir Bebere

Merci pour le bouton supplémentaire, mais par contre "si ajout dans listbox2 efface le précédent" ?
Est-ce que ça voudrait dire que l'on ne peut pas avoir 2 fois le même choix dans listbox2 ?
si c'est ça, ça marche pas...
de plus la flèche "retour dans listbox1" ne fonctionne pas correctement, malgré que les noms soient sélectionnés ça ne se passe correctement, quand on sélectionne une ligne c'est toutes celles au-dessus qui repartent vers listbox1

cordialement, Gérard
 

Bebere

XLDnaute Barbatruc
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Natorp
j'ai essayé d'appliquer la demande qui suit

Question pour Bebere : Serait-il possible de réactualiser la liste de gauche tant que l'on n'a pas cliqué sur "confirmer" et si, après avoir choisi Nom1 on choisit Nom2. Nom1 disparait de la liste de droite mais ne revient pas à gauche.

dis en plus
 

fb62840

XLDnaute Impliqué
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

Bonjour,

Pour ma part la solution proposée est très satisfaisante, par contre serait-il possible de poser des critères sur la "catégorie d'âge" afin de recopier la ligne non plus sur la même feuille mais sur une feuille portant comme nom par exemple "<8", "<10" etc.

A voir en pièce-jointe.

Merci beaucoup.
 

Pièces jointes

  • Choix NomsVM.xls
    76.5 KB · Affichages: 29
  • Choix NomsVM.xls
    76.5 KB · Affichages: 42
  • Choix NomsVM.xls
    76.5 KB · Affichages: 37

Bebere

XLDnaute Barbatruc
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

bonjour fb,natorp
avec choix critères
fb tu comprends ce qu'il veut natorp
 

Pièces jointes

  • Choix NomsVM.xls
    90.5 KB · Affichages: 49
  • Choix NomsVM.xls
    90.5 KB · Affichages: 47
  • Choix NomsVM.xls
    90.5 KB · Affichages: 42

fb62840

XLDnaute Impliqué
Re : VBA créer un formulaire de sélection d'enregistrement pour copie sur une feuille

bonjour fb,natorp
avec choix critères
fb tu comprends ce qu'il veut natorp

Bonjour,

Je ne suis pas certain de comprendre la demande de natorp.
Serait-ce ça ? :
On fait une première sélection, à la validation les lignes sont reportées sur la feuille des inscrits.
On souhaite faire une seconde sélection, à la validation il ne faudrait pas que les lignes reportées sur la feuille des inscrits se vide des lignes déjà présentes ?

Pour ma part, je te remercie pour ta proposition, serait-il possible de la faire évoluer de façon à ce que le critère ne soit pas à saisir mais déterminé dans le code et par le code.
Je m'explique :

Le critère serait déterminé par la valeur contenue dans la cellule au croisement de la ligne et de la colonne H et deviendrait un critère par exemple Crit1 si le contenu est = à <8, Crit2 pour <10, Crit3 pour <12, Crit4 pour <15, Crit5 pour <18, Crit6 pour <50, Crit7 pour >=50

et utiliser ce critère pour reporter en une seule fois les données souhaitées sur toutes les feuilles adéquates.

Merci.
 

Discussions similaires

Réponses
7
Affichages
360
Réponses
17
Affichages
625
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
294
Réponses
1
Affichages
216

Statistiques des forums

Discussions
312 169
Messages
2 085 911
Membres
103 033
dernier inscrit
thazet