Excelmania
Lieutenant
- Registriert
- Apr. 2010
- Beiträge
- 797
Hallo.
Ich habe eine Excel-Arbeitsmappe mit zwei Tabellenblättern erstellt.
Auf dem Tabellenblatt "Fragebogen" erfolgen die Fragen in vertikaler Ausrichtung, sodass auch eine Erfassung auf Papier mit nachträglicher Übertragung möglich ist.
Aufbau:
Spalte A: Nr. (1. bis 35)
Spalte B: Frage
Spalte C: Antwort
Zur Besseren Gliederung gibt es Abschnittsüberschriften.
Auf dem Tabellenblatt "Datensätze" wiederum möchte ich die erfassten Daten in horizontal erfassen.
Jede Frage stellt somit ein Attribut (Spaltenüberschrift) dar.
Ich würde gerne mittels eines Makros die erhaltenen Antworten stets als neuen Datensatz vom Tabellenblatt "Fragebogen" auf das Tabellenblatt "Datensätze" kopieren und somit transponieren.
Bisher habe ich folgenden Code:
Nachteil dieser Variante ist jedoch, kommen noch Fragen hinzu oder werden Fragen nicht mehr erforderlich, muss ich immer den Code anpassen.
Mir schebt daher vor, über die ausgeblende Spalte "D" zu kennzeichen, dass die Antwort in C transponiert kopiert wird nach "D".
So brauche ich nur die Frage an der Richtigen Stelle hinzufügen. Fragen die entfallen, muss ich natürlich nur ausblenden, damit eine Eindeutigkeit erhalten bleibt.
Kann mir jemand beim Umbau dieses Codes helfen?
Vielen Dank.
Ich habe eine Excel-Arbeitsmappe mit zwei Tabellenblättern erstellt.
Auf dem Tabellenblatt "Fragebogen" erfolgen die Fragen in vertikaler Ausrichtung, sodass auch eine Erfassung auf Papier mit nachträglicher Übertragung möglich ist.
Aufbau:
Spalte A: Nr. (1. bis 35)
Spalte B: Frage
Spalte C: Antwort
Zur Besseren Gliederung gibt es Abschnittsüberschriften.
Auf dem Tabellenblatt "Datensätze" wiederum möchte ich die erfassten Daten in horizontal erfassen.
Jede Frage stellt somit ein Attribut (Spaltenüberschrift) dar.
Ich würde gerne mittels eines Makros die erhaltenen Antworten stets als neuen Datensatz vom Tabellenblatt "Fragebogen" auf das Tabellenblatt "Datensätze" kopieren und somit transponieren.
Bisher habe ich folgenden Code:
Code:
Sub Datensatz_anlegen()
Dim lngLetzteZeile As Long
Dim lngAbZeile As Long
Dim lngZeile As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = Worksheets("Fragenbogen")
Set wksZ = Worksheets("Datensätze")
lngLetzteZeile = wksQ.Cells(wksQ.Rows.Count, 2).End(xlUp).Row
For lngZeile = lngAbZeile To lngLetzteZeile
If wksQ.Range("B" & lngZeile).Value = wksZ.Range("H3").Value Then
'Abschnitt 1
wksZ.Range("A" & lngZeile).Value = wksQ.Range("C3").Value
wksQ.Range("B" & lngZeile).Value = wksZ.Range("C4").Value
wksQ.Range("C" & lngZeile).Value = wksZ.Range("C5").Value
wksQ.Range("D" & lngZeile).Value = wksZ.Range("C6").Value
'Abschnitt 2
wksQ.Range("E" & lngZeile).Value = wksZ.Range("C9").Value
wksQ.Range("F" & lngZeile).Value = wksZ.Range("C10").Value
wksQ.Range("G" & lngZeile).Value = wksZ.Range("C11").Value
'Abschnitt 3
…
End If
Next
End Sub
Nachteil dieser Variante ist jedoch, kommen noch Fragen hinzu oder werden Fragen nicht mehr erforderlich, muss ich immer den Code anpassen.
Mir schebt daher vor, über die ausgeblende Spalte "D" zu kennzeichen, dass die Antwort in C transponiert kopiert wird nach "D".
So brauche ich nur die Frage an der Richtigen Stelle hinzufügen. Fragen die entfallen, muss ich natürlich nur ausblenden, damit eine Eindeutigkeit erhalten bleibt.
Kann mir jemand beim Umbau dieses Codes helfen?
Vielen Dank.
Anhänge
Zuletzt bearbeitet: