Copier les choix d'une listbox multiselection

bonjour à tous!!

vous les pros vous allez surement trouver que ma question relève du b.a.ba mais le fait est que je suis en première section de maternelle pour le vba!! alors désolée par avance..

voici mon souci:

je crée un userform type formulaire qui permet de remplir une première feuille FORMULAIRE qui est la version a imprimer à terme du userform, chaque info du userform à une cellule cible définie et fixe sur cette feuille

et une feuille BASE DE DONNEE qui est ... ben euh... la base de donnée récapitulative où par contre les info se stockent par ligne les unes au dessous des autres au fur et à mesure. le USF contient des combobox des list box et des text box

concernant une list box à selection multiple (nommée Lb_Responsable), je n'arrive pas à envoyer les résultats choisis dans la cellule D13 du feuillet FORMULAIRE et dans la colonne G ligne après ligne dans le feuillet BASE DE DONNEE

et si en plus ces résultats étaient séparés par un point virgule ce serait Bizance.

voici le code associé à une sub du commandbutton "enregistrer" que j'ai piqué et bricolé mais qui ne fonctionne pas:

Dim I As Integer, y As Integer

With Me.Lb_Responsable

For I = 0 To .ListCount - 10

If .Selected(I) = True Then

Sheets("BASE_DE_DONNEE").Range("G" & Maligne).Value = .List(I)

Sheets("FORMULAIRE").Range("D13").Value = .List(I)

End If

Next I

End With

je vous envoie un fichier pour vous clarifier tout ça

merci encore pour tous ceux qui prendront même un petit peu de temps pour m'aider

à bientôt

96pour-forum.xlsm (65.79 Ko)

oups je m'aperçosi que j'ai supprimé par erreur les command button sur le fichier envoyé, en voici un nouveau

pour info dans les combobox la selection est conditionnée en cascade par .Range mais je n'ai pas alimentée la liste pour tous les choix possibles donc pour que ça marche pour l'instant:

dans la combobox PROCESSUS seule la réponse "PRE-ANALYTIQUE PO1" puis la réponse "PO1-3 RECEPTION" ne donnera une suite jusqu'au bout d'une formulaire sinon erreur!!!

merci encore et désolée pour ce couack

295pour-forum.xlsm (71.50 Ko)

Salut,

Ta demande est assez compliquée, car ton enchevêtrement de codes ne donne pas trop l’envie de s’y plonger (j’avais par exemple vu ta demande à l’époque et avais espéré que quelqu’un d’autre puisse t’aider). Puis lorsque l’on s’y plonge, on reçoit tout plein de messages d’erreur, comme par exemple que certains objets ne sont pas disponibles sur nos machines.

Mais bon, en neutralisant au petit bonheur tous les codes qui bloquaient, je suis quand même arrivé à atteindre la partie qui te créé souci et ai constaté un premier problème. Selon l’image ci-dessous, tu vois que si tu places un point d’arrêt (en brun) sur cette ligne, tu peux aller lire le nombre d’entrée de la liste, soit 4. Mais comme tu enlèves 10 à ce nombre, ton passage For I = 0 to .Listcount – 10 boucle théoriquement de 0 à – 6, mais comme cela n’est pas possible, dans la réalité il ne boucle pas du tout sur le passage suivant If / End If et passe immédiatement plus loin, à End With.

Pourquoi as-tu placé ce – 10 ? Maintenant, si tu enlèves ce – 10, est-ce que ça va résoudre ton problème ?

Si non, je crois que tu devrais créer un fichier uniquement pour comprendre ce problème avec un UserForm extrêmement simplifié, soit avec seulement une ListBox multiselection et ce sera plus simple à trouver d’où vient le problème et comment tu peux en distribuer les éléments sur une feuille (si je t’ai bien comprise).

Cordialement.

12 09

salut

je te remercie mais j'avais réussi à corriger ce problème depuis,

en fait dans mon dernier post je t'ai sollicité sur un autre problème concernant un autre code que voici et que j'ai rajouté depuis

Private Sub Saisir_But_Click()

For i = 0 To Me.Lb_Responsable.ListCount - 1

If Me.Lb_Responsable.Selected(0) Then

MsgBox "Selectionner le ou les repsonsables qui ont été informés ou qui le seront."

Label3.ForeColor = RGB(204, 51, 204)

Exit Sub

End If

Next

end sub

je voudrais par ce code contraindre l'utilisateur a faire au moins une sélection dans cette listbox multiselection

le problème que je rencontre est que ce code fonctionne même quand une sélection est faite et sort de la sub et je ne comprends pas pourquoi

voilou merci tout de même pour ton aide

resalut

je viens de tenter avec ce code et rien n'y fait : que je fasse une sélection ou pas dans la listbox "Lb_Responsable" le msgbox est engendré

If IsNull(Me.Lb_Responsable.Value) Then

MsgBox "Selectionner le ou les repsonsables qui ont été informés ou qui le seront."

Label3.ForeColor = RGB(204, 51, 204)

Exit Sub

End If

mystère vraiment pour moi

eureka!!

voici le code qui m'a permis de sortir du gouffre!!

Dim element_select As Boolean

Dim nb_elements As Integer

element_select = False

nb_elements = Me.Lb_Responsable.ListCount

For i = 0 To nb_elements - 1

If Me.Lb_Responsable.Selected(i) = True Then

element_select = True

Exit For

End If

Next

If element_select = False Then

MsgBox "Selectionner le ou les repsonsables qui ont été informés ou qui le seront."

Label3.ForeColor = RGB(204, 51, 204)

Exit Sub

End If

voila c'est résolu merci quand même!!

AUDREY8013 a écrit :

voila c'est résolu merci quand même!!

Ok, je referme le fichier sur lequel j'étais en train de bosser pour toi et je passe à autre chose.

Ciao.

Rechercher des sujets similaires à "copier choix listbox multiselection"