• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Verwerking enquete-resultaten

Status
Niet open voor verdere reacties.

radegroot

Gebruiker
Lid geworden
2 feb 2010
Berichten
49
Hi,

Ik heb enquete-resultaten waarbij op 1 vraag meerdere antwoorden zijn gegeven; deze staan in verschillende kolommen op 1 row. Voor de verwerking zou ik ieder antwoord op een aparte row willen hebben. Van alles geprobeerd met een draaitabel, maar kom er niet uit... Zie svp bijlage. Kan iemand mij verder helpen? Thankz!

Gr.Raymond
 

Bijlagen

Dit kan makkelijk met een macro, onderstaande bijvoorbeeld.
ik weet niet of je hiermee geholpen bent qua kennis, maar hopelijk verlicht het je last :)

Mark.

Code:
Sub Output()
Dim r As Long
Dim i As Long
Dim j As Long
Dim varinput As Variant
Dim varoutput As Variant
    'matrix voor uitvoer maken:
    ReDim varoutput(1 To 2, 1 To 1) As Variant

    With Sheets("Input")
        'data in array zetten
        varinput = Sheets("Input").Range("A2", .Cells.SpecialCells(xlCellTypeLastCell))
    End With
    
    For i = 1 To UBound(varinput) 'range array heeft altijd lbound 1
       
        If varinput(i, 5) = 0 Then   'bij geen data, toch nummer laten zien:
            
            r = r + 1
            ReDim Preserve varoutput(1 To 2, 1 To r) As Variant
            varoutput(1, r) = varinput(i, 1)
         
        Else
            'kijk in cellen of er data is ingevuld, zo ja, voeg een rij toe
            For j = 2 To 4
            
                If InStr(varinput(i, j), "") Then   'empty is niet gelijk aan ""
                    r = r + 1
                    ReDim Preserve varoutput(1 To 2, 1 To r) As Variant
                    varoutput(1, r) = varinput(i, 1)
                    varoutput(2, r) = varinput(i, j)
                End If
            
            Next
        
        End If
        
    Next

    With Sheets("Gewenste output tbv analyse")
        'data in werkblad plaatsen
        .Range("A2").Resize(UBound(varoutput, 2), UBound(varoutput, 1)) = WorksheetFunction.Transpose(varoutput)
    End With

End Sub
 
Dank je Mark.

Ben (nog) niet zo goed met macro's VBA, maar hiermee kom ik er vast wel uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan