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
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
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.
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.