Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
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

Modul in anderen Dateien ausführen

Modul in anderen Dateien ausführen
26.07.2016 17:06:16
Felix
Hallo zusammen,
ich habe folgende Herausforderung.
Ich habe ein Makro geschrieben, welches bestimmte Dateien formatieren soll.
Wenn ich das Modul in die "Rohdatei" kopiere, funktioniert es auch wunderbar.
Allerdings möchte ich, dass meine aktive Datei, die das Makro enthält, einen Ordner durchsucht und alle enthaltenen Dateien mit dem Makro formatiert.
Mein aktueller Code zum Öffnen dieser Dateien funktioniert leider nicht und ich finde den Fehler nicht.
In meinem Fall wird das Makro "Formatierungrohdatei" immer auf meine aktive Datei angewendet und nicht auf die geöffneten Dateien.
Vielen Dank für Eure Hilfe.
Sub Rohdateienformatieren()
Const sSourcePath As String = "C:Pfad...\"
Dim fld, file
Dim fso As Object
Dim objFld As Object
Dim objSubFld As Object
Dim objFiles As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFld = fso.getfolder(sSourcePath)
Set objSubFld = objFld.SubFolders
For Each fld In objSubFld
Set objFiles = fld.Files
For Each file In objFiles
Application.Workbooks.Open (file.Path)
Call Formatierungrohdatei
ActiveWorkbook.Close savechanges:=True
Next
Next
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Modul in anderen Dateien ausführen
27.07.2016 22:26:46
fcs
Hallo Felix,
mögliche Probleme:
1. du hast in deiner Formatierung mit ThisWorkbook gearbeitet.
2. Der Fokus/Das aktive Fenster wird bei neueren Office-/Windows-Versionen unter Excel-VBA nicht immer - wie in früheren Versionen- auf die geöffnete Arbeitsmappe gesetzt. Ich hatte da auch schon extreme Probleme ein Altmakro wieder auf die richtige Spur zu bringen.
Ich hab dann teilweise mit Fenster-Verkleinerungen und Fenster-Aktivierungen im Makro gearbeitet, um mit ActiveWorkbook arbeiten zu können - es war ein Graus.
Der Weg für eine saubere wäre hier die geöffnete Arbeitsmappe als Parameter (Workbook-Variable) an das Formatierungsmakro zu übergeben.
In dem Formatierungsmakro müssen dann auch die Referenzen zu den Blttern der Mappe jeweils korrekt/vollständig gesetzt werden.
Das kann mühsehlig sein - wird aber eine Lehr-/Übungsstunde im sauberen Referenzieren von Excel-Objekten.
Gruß
Franz
Sub Rohdateienformatieren()
Const sSourcePath As String = "C:Pfad...\"
Dim fld, file
Dim fso As Object
Dim objFld As Object
Dim objSubFld As Object
Dim objFiles As Object
Dim objWkb As Workbook
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFld = fso.getfolder(sSourcePath)
Set objSubFld = objFld.SubFolders
For Each fld In objSubFld
Set objFiles = fld.Files
For Each file In objFiles
Set objWkb = Application.Workbooks.Open(file.Path)
Call Formatierungrohdatei(objDatei:=objWkb)
objWkb.Close savechanges:=True
Next
Next
Set objWkb = Nothing
End Sub
'Beispiel für Formatierungsdatei
Sub Formatierungrohdatei(objDatei As Workbook)
Dim wks As Worksheet
Set wks = objDatei.Worksheets("Sheet_XYZ")
With wks
.Cells.VerticalAlignment = xlTop
With .Range(.Columns(1), .Columns(2))
.ColumnWidth = 10
.NumberFormat = "#,##0.00"
End With
End With
End Sub

Anzeige
AW: Modul in anderen Dateien ausführen
02.08.2016 11:16:36
Felix
Hallo Franz,
danke für deinen Input. Ich werde es nochmal prüfen.
Besten Gruß,
Felix

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige