Listbox et extraction

Fermé
nivea - 3 sept. 2014 à 01:21
 nivea - 3 sept. 2014 à 15:43
Bonjour,

Comment doit-on faire pour extraire des variables sélectionnées dans une zone de liste?
Dans mon fichier exemple, j'ai des questions ou l'on a mis des réponses à choix multiples.
La liste des variables auquel ce rapportent les zone de listes dans la plage d'entrée du formulaire ce trouve en feuille 2 du classeur avec un type de sélection multiple, donc sans cellule liée possible.

Puis-je crée un programme qui extrait chaque valeur déjà sélectionnée de la liste et qui la place sur la cellule de droite sans avoir besoin de retourner sur chaque liste.

Dans mon exemple j'ai des listes dans la colonne C et des listes dans la colonne E etc...
avec des valeurs qui ont déjà été choisis.
Je voudrais donc que les valeurs sélectionnées dans chaque zone de liste soit répertoriées dans la colonne adjacente.

Je devrais alors avoir, toujours par rapport à mon exemple, pour la liste ce trouvant en C2 dans laquelle on a sélectionné la valeur "métro", D2="métro" et ainsi de suite pour toute mes listes, autrement dis

"métro" en D2
"vélo" et "autre" en D3
"matin" en F2
"matin" et "midi en F3
et ainsi de suite avec autant de liste qu'existante et de variables sélectionnée.

j'insiste sur l'emplacement des résultats pour qu'il reste aligné avec les autres réponses des individus.

merci d'avance pour votre aide.


http://cjoint.com/?DIda0lVCL26

6 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
3 sept. 2014 à 12:21
Bonjour

Plutôt qu'un formulaire par ligne , ce qui est fastidieux, il est préférable d'avoir un userform qui s'affiche lors d'un double-clic dans une cellule
Une fois validées les données de l'UF sont inscrites dans la 1ere ligne vide du tableau

Exemple d'après ton fichier : https://www.cjoint.com/?0IdmxkcKaFn

(ALT F11 pour voir le code)

Cdlmnt
0
Bonjour via55,

votre macro est parfaite!
Au moins je pourrais m'en servir pour une autre fois, MAIS,
parce qu'il y a malheureusement un mais,
je dispose d'un fichier déjà saisie non modifiable comme celui que j'ai mis en exemple. Alors certes votre méthode et tout à fait efficace mais inutile pour ma demande.

avec les commentaires que vous avez je me demande si je peut sélectionner quelques partie de votre macro pour en crée une qui m'aille, celui-ci? quelle autre modification que le nom de la colonne?


Dim DernLigne As Long
' derniere ligne non vide en colonne A
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
' premiere ligne vide
nl = DernLigne + 1
'boucle sur les éléments de la listbox moyen et mets les éléement selectionnes dans retour
For i = 0 To Me.moyen.ListCount - 1
If Me.moyen.Selected(i) = True Then retour = retour & " - " & Me.moyen.List(i)
Next i
'inscription des moyens selectionnés
Range("D" & nl) = retour
retour = ""
'boucle sur les éléments de la listbox frequence
For i = 0 To Me.frequence.ListCount - 1
If Me.frequence.Selected(i) = True Then retour = retour & " - " & Me.frequence.List(i)
Next i
' inscription des fréquences sélectionnés
Range("F" & nl) = retour
End Sub

0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié par via55 le 3/09/2014 à 14:57
Re

Quand tu dis je dispose d'un fichier déjà saisi que veux tu dire ? un fichier dans l'age et le sexe sont déjà rentrés mais pas les moyens de transports et la fréquence ?

Si c'est le cas je peux adapter la macro : un double-clic sur une ligne ouvrirait l'userform qui ne donnera alors qu'à choisir les moyens et la fréquence

Me dire et m'indiquer dans quelles colonnes doivent être retranscrites ces 2 infos

Dans l'attente

"L'imagination est plus importante que le savoir." A. Einstein
0
L'age, le sexe et d'autre variable ont déjà eté saisie et les données des zone de liste aussi.
je sais que l'individu 1 à par exemple 22 ans que c'est un homme qu'il prend le métro et la voiture le matin et le soir.

mais les zones de liste me pose un vrai probléme.
j'ai une zone de liste dans la colonne C je veux que les éléments choisis se retrouve en colonne D.
J'ai plusieurs liste les unes en dessous des autres et dans différentes colonnes avec des choix déjà fait.
comme sur mon fichier joint.

vous en pensez quoi?
(merci pour la patience)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
3 sept. 2014 à 15:39
Ce que j'en pense ! c'est que c'est vraiment mal fichu car ce sont des contrôles de formulaires qui ont été utilisés et non des contrôles ActiveX comme dans mon exemple
Les contrôles de formulaires sont en principe rattachés à une cellule mais pas les tiens (et de toutes façons en cas de sélection multiple ça ne servirait pas à grand chose

S'il est facile de récupérer en VBA les infos sélectionnés dans un contrôle Active X comme dans mon exemple, je ne sais pas le faire sur de simples contrôles de formulaires et je ne sais même pas si c'est possible !

Essaie de reposer la question dans ce sens sur le forum : Comment récupérer les informations sélectionnées dans un contrôle de formulaire inséré dans une feuille ?

En espérant que quelqu'un ait la solution

Cdlmnt
0
ok.
merci quand même pour ton aide.
0