Questions à choix multiple

Cecinerock

XLDnaute Nouveau
Bonjour à toutes et à tous,

Tout d'abord, bonne année.

J'ai utilisé une solution TAPI pour réaliser une enquête. Cette solution ne s'avère pas être très pratique dès qu'il s'agit de questions à choix multiple.

En exportant sous XLS, les réponses aux questions à choix multiple s'affichent dans la même cellule, séparées de deux points ":"

J'essaye d'y remédier avec VBA, mais je coince !
Voici comment j'ai pensé faire :



Code:
'L et C pour lignes et colonnes

Dim L, C as integer
for L=2 to 200
for C = 1 to 300

if cells(L,C) contient ":" then
'Trouver la colonne dont le nom correspond au nom de la modalité avant les ":" et affecter la valeur 1 en restant sur la même ligne.
Idem pour les autres modalités
'Sachant que ça peut aller jusqu'à 10 modalités dans une même cellule
'Si NSP ou AUCUN laisser vide les cellules des colonnes additionnées
end if

next C
next L

A noter que la création de colonnes correspondantes aux modalités de chaque question à choix multiple est prévu au préalable (Manuellement).

Quelqu'un aurait-il une idée sur comment faire ?

Vous trouverez en PJ, un exemple de la structure de donnée, actuelle (Onglet 1) et souhaitée (Onglet 2).

En vous remerciant.

Cdt

Cecinerock
 

Pièces jointes

  • Excel Downloads.xlsx
    14.6 KB · Affichages: 36
  • Excel Downloads.xlsx
    14.6 KB · Affichages: 34
  • Excel Downloads.xlsx
    14.6 KB · Affichages: 29

Modeste

XLDnaute Barbatruc
Re : Questions à choix multiple

Bonjour Cecinerock, bonne année 2015 à toi aussi!

Difficile d'imaginer les différentes situations qui pourraient être rencontrées sur base de ce seul exemple ...

As-tu essayé de sélectionner tes "réponses" > Données > Convertir > Type: Délimité > Séparateur: indiquer le double-point dans "Autre" > Terminer
Ensuite, F5 > Cellules... > Constantes > Texte > OK ... saisir 1 et appuyer sur Ctrl+Enter


Sinon, voici un bout de code qui fait ce que je crois avoir compris que tu attendais:
VB:
Sub spliter()
lesChoix = Array("X", "Y", "Z", "M")
For lig = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    tablo = Split(Cells(lig, 1), ":")
    For x = 0 To UBound(tablo)
        If Trim(tablo(x)) = "NSP" Then Exit For
        Cells(lig, 1 + Application.Match(Trim(tablo(x)), lesChoix, 0)) = 1
    Next x
Next lig
End Sub
Activer la feuille "Structure actuelle" avant l'exécution; les 4 colonnes s'ajoutent à côté des données de la colonne A (en attendant d'en savoir plus).
Cette macro doit être exécutée sur les données que tu as présentées dans ton exemple, pas après avoir essayé la procédure décrite plus haut.
 

Discussions similaires

Réponses
8
Affichages
469

Statistiques des forums

Discussions
312 429
Messages
2 088 355
Membres
103 826
dernier inscrit
Normand.guillaume@orange.