mehrere Dateien in einer zusammenfassen
Guten Morgen liebe Supportnetler,
ich habe da eine mühsame Arbeit und denke, dass man das per Makro vereinfachen kann. Nur leider fehlt mir hier das Wissen. :-(
Mir liegen 68 Excel-Dateien vor, die jeweils zwei Arbeitsmappen haben. Diese lauten (immer gleich!!!): EVN Details und Erklärungen zu Verbindungsarten. Nun brauche ich in einer Datei alle Arbeitsmappen "EVN Details". Damit die Übersicht gewährt bleibt, hätte ich gerne als neuen Mappen-Namen noch die letzten 8 Stellen des Dateinamens. Zum Beispiel lautet eine Datei "EVN_06563949012721_KARTE_50010560.xls". Die darin befindliche Mappe "EVN Details" sollte dann in der neuen Datei als "EVN Details 50010560" eingefügt werden.
Geht das überhaupt? Oder muss ich mich jetzt wirklich hinsetzen, die einzelnen Mappen in eine neue Datei kopieren und manuell umbenennen? Hoffe nicht!!!!
Für einen hilfreichen Tipp wäre ich euch echt dankbar!
Herzliche Grüße
Mona1980
PS: Hoffe es ist verständlich genug formuliert...
Antwort schreiben
Antwort 1 von Marie vom 23.06.2021, 11:15 Options
Hier hätte ich mal einen Code die Dateinamen in Access einzulesen
http://www.supportnet.de/t/2234766, kannste umschreiben und in Excel einlesen.
Danach hintereinander alle aufrufen, die letzten 8 Zeichen vom Namen merken, zwei neue Tabellenblätter anlegen umbenennen in EVN Details und Erklärungen zu Verbindungsarten & die letzten 8 gemerkten Zeichen, Tabellenblatt kopieren, einfügen. Kein Problem, aber wenn Du gar keine Ahnung hast und das nur ein einziges Mal machen musst, hast Du vermutlich alle 68 Dateien schneller kopiert als den Code zum laufen gebracht.
gruß marie
Antwort 2 von nighty vom 23.06.2021, 11:52 Options
hi mona .-)
teste mal
gruss nighty
Global Scup As Boolean
Global Ebes As Boolean
Global Cclt As Integer
Option Explicit
Sub DateienLesen()
Scup = Application.ScreenUpdating
Ebes = Application.EnableEvents
Cclt = Application.Calculation
Call EventsOff
Dim DateiName As String
DateiName = Dir("C:\Temp1\" & "*.xls")
Do While DateiName <> ""
If ThisWorkbook.Name <> DateiName And Len(DateiName) > 11 Then
Workbooks.Open Filename:="C:\Temp1\" & DateiName
Workbooks(DateiName).Worksheets("Tabelle1").Copy Before:=Workbooks(ThisWorkbook.Name).Worksheets(1)
ActiveSheet.Name = Mid(Right(DateiName, 12), 1, 8)
Workbooks(DateiName).Close
End If
DateiName = Dir
Loop
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 = Scup
.EnableEvents = Ebes
.Calculation = Cclt
End With
End Sub
Antwort 3 von nighty vom 23.06.2021, 11:57 Options
hi mona :-)
gruss nighty
an EINER stelle anzupassen
"Tabelle1"
an ZWEI stellen anzupassen
"C:\Temp1\"
Antwort 4 von Mona1980 vom 23.06.2021, 12:09 Options
Hey Nighty!
Herzlichen Dank für dein Makro. Denke, dass ich es richtig angepasst habe....
"Tabelle1" habe ich durch den Namen der Arbeitsmappe ersetzt
"C:\Temp1\" habe ich durch den Pfad ersetzt, wo die einzelnen Dateien zu finden sind
Wenn ich das Makro starten möchte, zeigt er mir drei zur Auswahl: DateienLesen, EventsOff und EventsOn. Leider passiert hier jedoch nichts. :-(
Hab ich einen Denkfehler beim Ersetzen??
Herzlichste Grüße und nochmals VIELEN DANK!
Mona1980
Antwort 5 von nighty vom 23.06.2021, 12:15 Options
hi mona :-)
"Tabelle1" waere deine zu kopierende tabelle
"Tabelle1" wird also geaendert zu "EVN Details"
wenn ich richtig verstanden hab :-)
gruss nighty
Antwort 6 von nighty vom 23.06.2021, 12:20 Options
hi all :-)
@marie
api funtionen bei unterordnern einsetzen,ansonsten reicht die dir function
die events,naja,kein muss,mir gefaellts immer gut,koennte aber auch raus mit einigen bremseffekten :-)))
gruss nighty
Antwort 7 von Mona1980 vom 23.06.2021, 13:57 Options
Hallo Nighty,
muss ich die Ausführung der Makros in einer bestimmten Reihenfolge vornehmen? Und wie ist es mit Leerzeichen im Namen von dem Tabellenblatt? Muss "EVN Details" als "EVN_Details" angegeben werden? Und, zum guten Schluss, muss ich eine der besagten Dateien offen haben oder geht auch eine noch nicht gespeicherte neue Datei?
Grüßle aus dem Hesse-Land
Mona1980
Antwort 8 von nighty vom 23.06.2021, 14:47 Options
hi mona
zu 1
es wird nur das makro DateienLesen gestartet
zu 2
leerzeichen sollten keine rolle spielen,da die dateinamen automatisch eingelesen werden
zu 3
ein tabellennamen sollte schon angegeben sein,sonst wuessten wir ja nicht welche tabelle
wenn das dein angegebener name ist,dann diesen "EVN Details" wie oben erwaehnt einfuegen
zu 4
die dateien werden automatisch geoeffnet ausgelesen und wieder geschlossen
verbundene zellen sind verboten
geschuetzte bereiche ist der schutz kurzfristig aufzuheben
gruss nighty
Antwort 9 von nighty vom 23.06.2021, 14:50 Options
hi all :-)
verbundene zellen duerften keine rolle spielen da ja ganze tabellen kopiert werden :-)))
gruss nighty
Antwort 10 von Mona1980 vom 24.06.2021, 09:09 Options
Hallo Nighty,
ES KLAPPT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Ich musste lediglich die Daten auf C verschieben, aber das ist ja nicht so schlimm! Jetzt kann ich meine Auswertungen machen!
Von Herzen ein dickes fettes Dankeschön.
GLG
Mona1980