Supportnet / Forum / Tabellenkalkulation
Daten von verschiedenen Exceldokumente in ein Hauptdokument importieren (mit VBA)
Frage
Hallo Leute,
ich bin Maturant und mit 2 Mitschülern erarbeiten wir ein Prüfsystem für eine Firma. Dabei sollen die Mitarbeiter bestimmte Prüfwerte in ein Excel-Formular übertragen, welches dann bei Knopfdruck per Mail versandt wird. Soweit so gut, das klappt auch schon. Die Sekretärin lädt die Excel-Dokumente auf die Festplatte und jetzt kommen wir nicht mehr weiter, denn damit die Daten auch längerfristig analysiert werden können, möchten wir die Daten aus den verschiedenen Excel.sheets in ein "Hauptdokument" kopieren. (per Knopfdruck versteht sich):
Ich habe dazu die search.folder funktion verwendet um den Speicherordner auszulesen, aber im Excel integriert hat es plötzlich nicht mehr funktioniert.
Unser Ziel: Die Sekretären klickt im "Hauptdokument" auf einen Knopf und die Daten aus den verschiedenen Excel-Dokumenten werden automatisch in die Haupttabelle importiert.
Wenn ihr uns helfen könntet, währen wir echt froh, da wir eigentlich keine Programmierer sind!!
Vielen Dank im Voraus!
Mit freundlichen Grüßen
das Maturaprojektteam
Antwort 1 von nighty
hi matura :-)
welche excel version ?
versteh ich das richtig das verschiedene mappen ausgelesen werden sollen ?
wenn ja welches laufwerk,welcher pfad ?
welche tabellen der mappen sollen ausgelesen werden ?
welche bereiche oder zellen ?
wo sollen sie hinkopiert werden ?
mappe die die daten sammelt ist klar,welche tabelle,welche spalten ?
gruss nighty
welche excel version ?
versteh ich das richtig das verschiedene mappen ausgelesen werden sollen ?
wenn ja welches laufwerk,welcher pfad ?
welche tabellen der mappen sollen ausgelesen werden ?
welche bereiche oder zellen ?
wo sollen sie hinkopiert werden ?
mappe die die daten sammelt ist klar,welche tabelle,welche spalten ?
gruss nighty
Antwort 2 von nighty
hi matura :-)
vorweg ein kleines beispiel was aus einem definierten verzeichnis einen definierten bereich kopiert und in einer mappe wieder darstellt :-)
gruss nighty
vorweg ein kleines beispiel was aus einem definierten verzeichnis einen definierten bereich kopiert und in einer mappe wieder darstellt :-)
gruss nighty
Sub FilesListen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
Dim zaehler As Boolean
Dim zeile As Long
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
If zaehler = False Then
zeile = 13
Else
zeile = ThisWorkbook.Sheets("SammelTabelle").Cells(Rows.Count, 9).End(xlUp).Row + 1
End If
Workbooks(DateiName).Sheets("EineTabelle").Range("K12:L12").Copy ThisWorkbook.Sheets("SammelTabelle").Range("I" & zeile & ":J" & zeile)
zaehler = True
Workbooks(DateiName).Close SaveChanges:=True
End If
Next Dateien
End If
End With
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End SubAntwort 3 von Maturant
Hallo nighty,
danke für deine schnelle Antwort, also es ist so in den verschiedenen Excel.sheets gibt es bestimmte zellen zb C5 und B 7, etc... und die Daten aus diesen Zellen sollen im Gesamt-Excelsheet anderst nämlich in einer großen Tabelle dargestellt werden also
C5 --> nach B3
B7 --> nach C3
beispielsweise.
Die Excel-Dokumente heißen MaschineNR._ddmmyy(Datum)_hhmmss(Uhr)
Und es wäre super wenn wir es mit VBA herbringen könnten, dass die Dateien eingelesen werden und dann der Reihe nach die Daten aus den verschiedenen Zellen in die Haupttabelle importiert werden.
Hoffe, diese Infos reichen dir und bin um jede Hilfe froh!!
Danke im Voraus!
Mfg Maturant
danke für deine schnelle Antwort, also es ist so in den verschiedenen Excel.sheets gibt es bestimmte zellen zb C5 und B 7, etc... und die Daten aus diesen Zellen sollen im Gesamt-Excelsheet anderst nämlich in einer großen Tabelle dargestellt werden also
C5 --> nach B3
B7 --> nach C3
beispielsweise.
Die Excel-Dokumente heißen MaschineNR._ddmmyy(Datum)_hhmmss(Uhr)
Und es wäre super wenn wir es mit VBA herbringen könnten, dass die Dateien eingelesen werden und dann der Reihe nach die Daten aus den verschiedenen Zellen in die Haupttabelle importiert werden.
Hoffe, diese Infos reichen dir und bin um jede Hilfe froh!!
Danke im Voraus!
Mfg Maturant
Antwort 4 von nighty
hi maturat :-)
schick eine mustertabelle an oberley@t-online.de mit angabe der wuensche
gruss nighty
schick eine mustertabelle an oberley@t-online.de mit angabe der wuensche
gruss nighty
Antwort 5 von nighty
hi maturat :-)
was haelst davon :-)
gruss nighty
was haelst davon :-)
gruss nighty
Sub Einlesen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
Dim zeile As Long
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
zeile = ThisWorkbook.Sheets("Tabelle2").Cells(Rows.Count, 5).End(xlUp).Row + 1
Workbooks(DateiName).Sheets(1).Range("D16:D23").Copy
ThisWorkbook.Sheets(2).Range("E" & zeile).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End SubAntwort 6 von Maturant
Hallo nighty,
Danke für deine Bemühungen,
das hat mich auf jeden Fall einen guten Schritt weitergebracht!
Ich möchte echt ein Lob an dieses Forum aussprechen!! Hier wird einem sofort und von Profis geholfen!!
Echt ne super Sache!!
Danke nochmals und bis zum nächsten Mal!
Mfg
Maturant
Danke für deine Bemühungen,
das hat mich auf jeden Fall einen guten Schritt weitergebracht!
Ich möchte echt ein Lob an dieses Forum aussprechen!! Hier wird einem sofort und von Profis geholfen!!
Echt ne super Sache!!
Danke nochmals und bis zum nächsten Mal!
Mfg
Maturant

