Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit Makro mehrere Dateien aktualisieren

Mit Makro mehrere Dateien aktualisieren
13.11.2018 16:09:25
jinu
Hallo zusammen,
Ich habe eine Datei "Test-Master" (Pfad: C:\Test) in der das unten stehende Makro enthalten ist. Mit dem Makro sollen folgende Schritte ausgeführt werden:
1. Das erste Tabellenblatt "Eingabe" soll berechnet werden.
2. Alle anderen Tabellenblätter sollen neu berechnet werden
3. Alle Tabellenblätter werden durchsucht und Zellen mit der Formel "DBRW" werden kopiert und als Werte eingefügt.
4. Speicherung der aktualisierten Datei in einem neuen Ordner entsprechend dem ausgewählten Monat ( C:\Test\Ziel\2018-eingestellter Monat )
Option Explicit
Sub Berechnen_DestroyDBRW_Speichern()
Dim strPath As String
Dim strFileName As String, strSpeichermonat As String
Dim rngCell, rngCell2 As Range
Dim WS_Count As Integer
Dim I As Integer
Application.ScreenUpdating = False
strPath = "C:\Test\Ziel"  'Pfad anpassen
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
With Sheets("Eingabe")
.Calculate
strSpeichermonat = "2018-" & Format(DateSerial(Year(.Range("N3")), Month(.Range("N3")), Day(. _
Range("N3"))), "MMMM") & "\"
strFileName = strPath & strSpeichermonat & "2018-" & Format(DateSerial(Year(.Range("N3")),  _
Month(.Range("N3")), Day(.Range("N3"))), "MMMM") & "_" & UCase(.Range("R3")) & ".xlsm"
End With
On Error GoTo ErrorHandler
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
Sheets(I).Calculate
Sheets(I).Select
Application.ScreenUpdating = False
Set rngCell = Cells.Find(What:="DBRW", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
While Not rngCell Is Nothing
rngCell.Value = rngCell.Value
Set rngCell = Cells.FindNext(After:=rngCell)
Wend
Application.CutCopyMode = False
Range("A1").Select
Application.ScreenUpdating = True
Next I
'Prüfen ob Ordner mit Monatsnamen vorhanden
'wenn nein, dann anlegen
If Dir(strPath & strSpeichermonat, vbDirectory) = "" Then
MkDir (strPath & strSpeichermonat)
End If
ThisWorkbook.SaveAs Filename:=strFileName, FileFormat:=52
MsgBox "Kein DBRW mehr gefunden"
ErrorHandler:
Application.ScreenUpdating = True
End Sub

Das funktioniert auch soweit mit dem Makro, auch wenn es vielleicht eine einfachere oder elegantere Lösung dafür gegeben hätte.
Ich habe jedoch in dem Ordner (C:\Test) noch 3 Weitere Dateien (Test2, Test3, Test4), die gleich aufgebaut sind, die ich in das Makro aus der Master-Datei integrieren möchte, dass die jeweiligen Dateien geöffnet werden, dann das Tabellenblatt "Eingabe" berechnet wird, anschließend die restlichen Tabellenblätter, dann überall "DBRW" entfernen und Werte dort einsetzen und zum Schluss die Datei unter dem selben Ordner wie zuvor abspeichern.
Es sollen mit dem Makro aus der Master-Datei alle 4 Dateien aktualisiert und in dem richtigen Ordner gespeichert werden.Kann man vielleicht eine Schleife einbauen, dass auf alle 3 zusätzlichen Dateien zugegriffen wird?
Habt ihr eine Idee wie ich es umsetzten kann?
Vielen Dank und viele Grüße
Jinu
Beispieldateien
https://www.herber.de/bbs/user/125360.zip

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Makro mehrere Dateien aktualisieren
18.11.2018 15:13:19
Piet
Hallo
ich wage mal einen vorsichtigen Versuch diese Aufgabe zu lösen. Kann man auch mit Makro-Recorder aufzeichnen.
Der Coıde ist ungetestet, die richtigen Namen für QuellPfad und Dateien 1-4 müssen in Const korrekt angegeben werden.
Im Prinzip wird das vorhanden Programm dann 4mal als -Sub Programm- aufgerufen, wenn es klappt!!
Im Modul1 habe ich dafür einen Befehl geaendert, hoffe er klappt! Statt ThisWorkbbok.SaveAs - Active Workbook.SaveAs
mfg Piet
Option Explicit
'ActiveWorkbook.SaveAs Filename:=strFileName, FileFormat:=52
Const sPfad = "c:\Test\Quelle"
Const Datei_1 = "Test Datei 1.xlsx"
Const Datei_2 = "Test Datei 2.xlsx"
Const Datei_3 = "Test Datei 3.xlsx"
Const Datei_4 = "Test Datei 4.xlsx"
'Makro für 4 Datein Öffnen und berechnen
Sub Dateien_öffnen_und_berechnen()
On Error GoTo Fehler
'Workbook 1-4 Öffnen und berechnen  (Call Programm)
Workbooks.Open Filename:=sPfad & Datei_1
Call Berechnen_DestroyDBRW_Speichern
ActiveWorkbook.Close
'Workbook 2 Öffnen und berechnen  (Call Programm)
Workbooks.Open Filename:=sPfad & Datei_2
Call Berechnen_DestroyDBRW_Speichern
ActiveWorkbook.Close
'Workbook 3 Öffnen und berechnen  (Call Programm)
Workbooks.Open Filename:=sPfad & Datei_3
Call Berechnen_DestroyDBRW_Speichern
ActiveWorkbook.Close
'Workbook 4 Öffnen und berechnen  (Call Programm)
Workbooks.Open Filename:=sPfad & Datei_4
Call Berechnen_DestroyDBRW_Speichern
ActiveWorkbook.Close
Exit Sub
Fehler:  MsgBox Ordner & "  Fehler beim Öffnen aufgetreten "
End Sub

Anzeige
AW: Mit Makro mehrere Dateien aktualisieren
19.11.2018 15:05:59
jinu
Hallo Piet,
vielen Dank für deine Antwort und deine Hilfe.
Der erste Test verlief sehr gut.
Es gab jedoch am Anfang eine Fehlermeldung bei
Fehler:  MsgBox Ordner & "  Fehler beim Öffnen aufgetreten "
dass "Ordner" nicht definiert ist. Was hattest du damit gemeint? Ich habe das "Ordner" mal gelöscht und dann ging es ohne Problem
Vielen lieben Dank und viele Grüße
Jinu

148 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige