Liste à choix multiples

mili

XLDnaute Nouveau
Bonjour,

je suis novice sur excel, mais je dois réaliser une saisie de données pour mon étude. Comme mon questionnaire contient des questions où plusieurs choix sont possible, j'aurai aimé les entrer dans excel pour qu'il arrive à les prendre ensuite en compte dans un tableau croisé dynamique. Pour cela, j'ai trouvé sur ce site une "code" (pour VB d'après ce que j'ai compris) qui permet de créer une liste déroulante à choix multiples.
Seulement voila, je n'arrive pas à trouver comment l'utiliser dans ma feuille de calcul :confused: (par ailleurs, si ce n'est pas la bonne solution pour qu'excel arrive à prendre en compte mes données, merci de me le dire ^^).
J'ai regardé les tutoriels pour Visual Basic mais je ne suis pas beaucoup plus avancée, je n'y arrive toujours pas.

Merci beaucoup d'avance pour votre aide.

ps: je vous met le "code" ci-dessous, au cas où cela vous serve pour me répondre ^^

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
p = InStr(Target, ValSaisie)
If p > 0 Then
Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
If Right(Target, 1) = Chr(10) Then
Target = Left(Target, Len(Target) - 1)
End If
Else
If Target = "" Then
Target = ValSaisie
Else
Target = Target & Chr(10) & ValSaisie
End If
End If
Application.EnableEvents = True
End If
End Sub
 

mili

XLDnaute Nouveau
Re : Liste à choix multiples

Non rien ne marche, si je met le code dans la feuille ça refuse de se lancer, et si je le met dans un module à part ça m'envoie toujours le message d'erreur disant 'objet requis' :( Je fais sans doute quelque chose de travers :confused:
 

Modeste

XLDnaute Barbatruc
Re : Liste à choix multiples

Bonjour mili,

Si tu n'as pas encore balancé ta machine par la fenêtre :rolleyes: et que tu repasses par ici, je joins ton dernier fichier avec le code de JB et la modification que je proposais pour que la macro se déclenche à chaque changement de contenu d'une des cellules de la plage F2:F14 (plage en bleu dans le fichier).
S'agissant d'une macro événementielle, le code doit obligatoirement se trouver dans le module de la feuille concernée et pas dans un module standard!

Si ça fonctionne avec la pièce jointe (j'ai testé avant, quand même ;)) ... il ne te reste plus qu'à essayer de voir quelle différence il pourrait y avoir ... ou de déposer une copie de ton fichier, sans les données confidentielles!
 

Pièces jointes

  • classeur test.xlsm
    18.3 KB · Affichages: 27
  • classeur test.xlsm
    18.3 KB · Affichages: 25
  • classeur test.xlsm
    18.3 KB · Affichages: 26
Dernière édition:

mili

XLDnaute Nouveau
Re : Liste à choix multiples

Bonsoir :D

oui ça y est ça marche !!!!! :D je ne sais pas exactement ce qui a changé par rapport à hier mais maintenant ça marche ^^ tu es génial !!!!! :D

Bon alors une dernière petite question, vu que j'ai besoin de ce code pour plusieurs colonnes de réponses, j'ai essayé de mettre If Not Intersect(Target, [O2:O206] & [N2:N206]) Is Nothing And Target.Count = 1 Then
Mais ça marche pas, donc j'ai essayé de copier le code en dessous du premier (en le renommant et en modifiant les référence de colonnes) mais ça marche pas non plus. Y a t-il un moyen de pouvoir utiliser les choix multiples sur d'autres colonnes ? (sur 4 colonnes différentes en fait, et qui ne sont pas situées à coté)

Merci beaucoup en tout cas, je n'y croyais plus :eek:
 

Modeste

XLDnaute Barbatruc
Re : Liste à choix multiples

Bonsoir aussi,

je n'y croyais plus :eek:
Moi non plus ;);) (It's a joke, of course!)

Si tes deux colonnes sont contigües, pas besoin de copier le code deux fois (le VBE râlerait d'ailleurs: il ne peut pas y avoir deux procédures Worksheet_Change pour une même feuille!). Si, en outre, l'étendue est la même (de la ligne 2 à la ligne 206) et que le code est identique, il suffit d'écrire [N2:O206]

... Allez, on y croit! :D Tu n'oublies pas de revenir nous dire!?

Bonne soirée,
 

mili

XLDnaute Nouveau
Re : Liste à choix multiples

Bonjour,

Désolée pour la réponse tardive, mon net a été coupé hier soir :(
Oui effectivement ça marche bien :) mais comment faire pour les deux autres colonnes U et Y ? (j'ai fait des test mais le VBE a pas tellement aimé ^^')
 

Modeste

XLDnaute Barbatruc
Re : Liste à choix multiples

Bonjour mili, il y avait longtemps :)

Parmi les choses que tu as essayées, est-ce que ceci y figurait: [N2:O206,U2:Y206]? ... en imaginant que ce sont toujours les lignes de 2 à 206 qui sont concernées et que le code qui doit s'exécuter est toujours le même.
Si par contre ce ne sont pas toutes les colonnes de U à Y, mais uniquement U et Y qu'il faut prendre en compte, tu devras écrire [N2:O206,U2:U206,Y2:Y206]

D'autre part (et tant que j'y songe) je ne sais si ce sera encore le cas dans ton fichier réel, mais si tu utilises la fonction NB.SI pour tes statistiques, tu pourrais avoir un problème avec un des exemples que tu avais donné: si tu as "sortie hôpital", parmi tes items et également "hôpital", sachant qu'une cellule pourra contenir plusieurs des items, je présume que tu utiliseras quelque chose comme =NB.SI($O$2:$O$206;"*hôpital*").
Si c'est le cas, "hôpital" sera compté quand il figure parmi les items sélectionnés, mais aussi lorsque "sortie hôpital" figurera quelque part dans la plage ... si tu vois ce que je veux dire!
 

mili

XLDnaute Nouveau
Re : Liste à choix multiples

Re,

ah non, j'avais essayé avec des ; et des tirets mais pas des virgules :) Je vais tester ça, merci :eek:

Effectivement pour NB.SI j'ai un problème du coup :s Mais en changeant la formulation des éléments similaires dans les listes ça devrait éviter ce soucis je pense :) heureusement que tu me l'as fait remarqué !
 

Discussions similaires

Réponses
2
Affichages
163

Statistiques des forums

Discussions
312 676
Messages
2 090 804
Membres
104 670
dernier inscrit
Djnic30