Excelmania
Lieutenant
- Registriert
- Apr. 2010
- Beiträge
- 797
Guten Morgen.
ich habe in Excel einen Fragebogen erstellt.
Die Rückläufer sollen nun ausgewertet werden. Hierzu sind die Antworten in einer Datei zu konsolidieren.
Für die Auswertung habe ich eine zweite Excel-Arbeitsmappe erstellt.
Nun ist meine Idee, dass ich über die VBA die Datei öffnen lasse, die Werte kopiert und unten angefügt werden und dann der Fragebogen wieder geschlossen wird.
Das Auswählen und öffnen der Excel-Arbeitsmappe klappt (nicht jedoch wenn ich auf Abbrechnen) klicke. Das Kopieren funktioniert jedoch nicht.
Der Dateiname zum Fragebogen kann varieren. Das Tabellenblatt "Fragenbogen" ist jedoch statisch.
Noch schöner wäre natürlich, ich könnte ein Verzeichnis auswählen und dann durchläuft Excel eine Schleife für alle Excel-Dateien in diesem Verzeichnis (sind dann natürlich nur die Rückläufer abgelegt).
Ergänzung: Habe hierzu etwas gefunden. Doch leider konnte ich das auf meine Bedürfnisse nicht anpassen:
Meine Thread füge ich zwei Beispieldateien bei.
ich habe in Excel einen Fragebogen erstellt.
Die Rückläufer sollen nun ausgewertet werden. Hierzu sind die Antworten in einer Datei zu konsolidieren.
Für die Auswertung habe ich eine zweite Excel-Arbeitsmappe erstellt.
Nun ist meine Idee, dass ich über die VBA die Datei öffnen lasse, die Werte kopiert und unten angefügt werden und dann der Fragebogen wieder geschlossen wird.
Das Auswählen und öffnen der Excel-Arbeitsmappe klappt (nicht jedoch wenn ich auf Abbrechnen) klicke. Das Kopieren funktioniert jedoch nicht.
Code:
Private Sub CMD_Daten_anfügen_Click()
Dim qdatei As Variant
qdatei = Application.GetOpenFilename _
("Excel Arbeitsmappe(*.xlsx),*.xlsx,")
Workbooks.Open qdatei
'letzte Zeile auf Daten
lz = ThisWorkbook.Worksheets("Daten").UsedRange.SpecialCells(xlCellTypeLastCell).Row
qdatei.Worksheets("Fragebogen").Range("B3").Copy
ThisWorkbook.Worksheets("Daten").Range("A" & (lz + 1)).PasteSpecial Paste:=xlValues
pname.Worksheets("Fragebogen").Range("B5:B6").Copy
ThisWorkbook.Worksheets("Daten").Range("B" & (lz + 1)).PasteSpecial Paste:=xlValues, Transpose:=True
qdatei.Close False
Application.CutCopyMode = False
End Sub
Der Dateiname zum Fragebogen kann varieren. Das Tabellenblatt "Fragenbogen" ist jedoch statisch.
Noch schöner wäre natürlich, ich könnte ein Verzeichnis auswählen und dann durchläuft Excel eine Schleife für alle Excel-Dateien in diesem Verzeichnis (sind dann natürlich nur die Rückläufer abgelegt).
Ergänzung: Habe hierzu etwas gefunden. Doch leider konnte ich das auf meine Bedürfnisse nicht anpassen:
Code:
Private Sub CommandButton1_Click()
Dim strDatnam As String
Dim wb As Workbook
Dim strPfad As String
Dim rngEinfüg As Range
strPfad = "D:\Fragebogen"
strDatnam = Dir(strPfad & "*.xlsx")
Do While strDatnam <> ""
Set wb = Workbooks.Open(strPfad & strDatnam)
With ThisWorkbook.Sheets("Daten")
Set rngEinfüg = IIf(IsEmpty(.Cells(3, 1)), .Cells(3, 1), .Cells(Rows.Count, 1).End(xlUp).Offset(1))
rngEinfüg = wb.Sheets("Daten").[B3]
rngEinfüg.Offset(, 2).Resize(, 3) = WorksheetFunction.Transpose(wb.Sheets("Fragebogen").[B5:B6])
End With
wb.Close savechanges:=False
strDatnam = Dir
Loop
Set rngEinfüg = Nothing
Set wb = Nothing
End Sub
Meine Thread füge ich zwei Beispieldateien bei.
Anhänge
Zuletzt bearbeitet: