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

Gleichnamige Makros in vielen geöffneten Dateien

Gleichnamige Makros in vielen geöffneten Dateien
22.11.2016 17:05:19
Winfried
Gruezi miteinand liebe Foristen,
ich stehe vor dem Problem gleichnamige Makros in verschiedenen, geöffneten Dateien nacheinander ablaufen zu lassen.
Eine "Steuerdatei" beinhaltet die Ergebnisse aller restlichen geöffneten Dateien und wird als Anschreiben als erste Seite ausgedruckt. Dahinter kommen dann die einzelnen Ausdrucke der anderen Dateien welche zur Erläuterung der ersten Seite dienen.
Momentan wird die erste Seite mit einem Makro bearbeitet, formatiert und ausgedruckt. Danach folgen dutzende andere
Dateien welche ebenso behandelt werden.
In der "Steuerdatei" habe ich alle aktuell geöffneten Dateien aufgelistet nach dem Schema
Z:\Bearbeitung\123.xls
Z:\Bearbeitung\124.xls
etc.
In jeder Datei befindet sich ein gleichlautendes Makro mit dem Namen "Ausdruck" welches nacheinander ausgeführt werden soll.
Vielleicht zwischen jedem einzelnen Makro noch eine Pause von 2 Sekunden einfügen damit sich keine Probleme ergeben.
In der "Steuerdatei" kann ich noch den erforderlichen Makronamen als auch die Anzahl der Makrowiederholungen (=Anzahl der geöffneten Dateien) einfügen.
So würde ich über eine Steuerdatei (Blatt mit dem Blattnamen Steuerung) mit den Daten:
Anzahl Routinen: 4
Datei1: Z:\Bearbeitung\Steuerdatei.xls
Datei2: Z:\Bearbeitung\123.xls
Datei3: Z:\Bearbeitung\127.xls
Datei4: Z:\Bearbeitung\154.xls
Abzuarbeitender Makroname: Ausdruck
verfügen.
Hoffentlich habe ich mich verständlich ausgedrückt.
Vielen lieben Dank vorab für die Unterstützung!
Schöne Grüsse
Winfried

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
22.11.2016 20:23:53
AlterDresdner
Hallo Winfried,
für mich zum Mitschreiben:
Du hast eine Datei Steuerdatei.xls mit einem Blatt Steuerung.
Außerdem sind n andere Dateien geöffnet.
Für jede dieser n anderen Dateien soll das dort vorhandene Makro Ausdruck ausgeführt werden.
Dieses Makro soll in Steuerdatei.xls beheimatet sein.
So richtig? Was soll mit den n Dateien danach erfolgen (Scließen mit/ohne Speichern, offen lassen)?
Sind noch andere Dateien offen, für die Ausdruck nicht ausgeführt werden soll?
Kann sich der Name des Makros Ausdruck ändern?
Wenn in beiden Fällen nein, brauche ich das Blatt Steuerung nicht, sonst müsste ich die Zellenzuordnung der Einträge wissen (Screenshot oder Datei hochladen).
Gruß der Martin
Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
22.11.2016 21:34:23
Winfried
Hallo Martin,
danke für Deine Nachricht. In etwa. Eine Datei, nennen wir sie Steuerdatei.xls beinhaltet eine Liste aller geöffneten Dateien, welche ich über ein Makro einlese. Alle Dateien beinhalten in sich selbst gleichnamige Makros. Z.B. Formatierung, Kalkulation, Druck etc.
Momentan muss ich jede einzelne Datei auswählen und dort die einzelnen Makros zur Ergebnisfindung aufrufen. Erst dann finde ich das gewünschte Ergebnis in der Steuerdatei.xls. Bei 20 Dateien eine unangenehme und zeitaufwändige Arbeit. Daher möchte ich in einer Routine jedes erforderliche Makro in jeder Datei automatisch aufrufen lassen. Also in etwa so: Greife den ersten Dateinamen in der Datei Steuerdatei.xls auf (123.xls) und Wechsel zu der geöffneten Datei 123.xls. Dort rufe das Makro Kalkulation auf. Danach das Makro Ausdruck. Hiernach arbeite diese Routine bis zum Ende der Liste (154.xls) ab.
Oder man kann es auch noch anders erklären wenn man an die Druckertools denkt auf welche man verschiedene Drucke geben kann und zum Schluss erst in dem Tool den eigentlichen Ausdruck durchführt. Auf unser Beispiel würde das bedeuten: "Lies den ersten Dateinamen aus der Datei Steuerdatei.xls aus und wechsel zu dieser (bereits geöffneten) Datei. Führe dort das Makro Ausdruck aus. Danach greife auf den zweiten Dateinamen in der Datei Steuerdatei.xls zu und führe die gleiche Routine durch. etc.pp
Man würde sich dann durch den Aufruf eines einzigen Makros das Wechseln zu jeder Datei und den dortigen Aufruf des Makros "Ausdruck" sparen.
Hoffentlich konnte ich es so besser verdeutlichen.
Vielen Dank vorab für Deine Idee wie man es umsetzen könnte.
Schöne Grüsse
Winfried
Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
22.11.2016 21:58:43
AlterDresdner
Hallo Winfried,
wenn außer den betroffenen keine weiteren Dateien offen sind, braucht es das Blatt Steuerung eigentlich nicht, man kann dann einfach durch alle offenen Dateien der reihe nach gehen.
Wenn Du es aber so willst, lade doch mal ein Beispiel des Blattes Steuerung hoch, damit ich nicht ein eigenes erfinden muss und Du dann erst umbauen musst. Außerdem müsste ich wissen, wo in der VBA-Struktur die Makros beheimatet sind (Diese ARbeitsmappe, Tabelle x, Modul y, ...). Gleiche Makros sollten in allen Dateien an der gleichen Stelle stehen, sonst wird es problematisch.
Gruß der AlteDresdner
Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
22.11.2016 22:36:26
Winfried
Hallo Martin,
in der "Steuerdatei.xls" steht nichts besonderes. In dieser Datei lasse ich ein Makro ablaufen:
Sub DateienAuflistenUndHyperlinken()
Dim i As Long
Dim Bereich As Range
Dim Zelle As Range
Const verz = "Z:\Projekt\0001"
'ACHTUNG PFAD ANPASSEN !!!!
'oder über Inputbox kreieren lassen
ChDir verz
Range("A:A").ClearContents
Range("A1").Select
With Application.FileSearch
.NewSearch
.LookIn = verz
.SearchSubFolders = False
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
ActiveCell.Value = .FoundFiles(i)
ActiveCell.Offset(1, 0).Select
Next i
End With
Range("A1").Select
Set Bereich = ActiveCell.CurrentRegion
For Each Zelle In Bereich
Zelle.Hyperlinks.Add Zelle, Zelle.Value
Next Zelle
End Sub
Dann habe ich dort alle Excel-Dateien aufgelistet. Eben diese sind auch allesamt geöffnet bzw. werden geöffnet. In jeder geöffneten Datei sind die Makros an gleicher Position, da die Dateien kopiert und angepasst wurden. Also die wichtigen Makros "Kalkulation, Formatierung und Druck" sind alle gleich.
Jetzt geht es darum z.B. in Tabelle 1 von Steuerdatei.xls in Zelle A1 den Dateinamen auszulesen, zu der Datei zu wechseln und dort dann das Makro (die Makros) aufzurufen. Nach dem Durchlauf die Zelle A2 in Tabelle 1 von Steuerdatei.xls auszulesen und zu dieser Datei zu wechseln. Dort dann erneut die Makros aufrufen. Das ganze so oft durchzuführen bis alle Dateien abgearbeitet wurden, bzw das Ende des Datensatzes (A1, A2, A3..) erreicht ist.
Also in etwa so
Sub Ausführen ()
'hier muss der Code für das Auslesen des Dateinamens und der Wechsel zu der Datei stehen
call Kalkulation
call Formatierung
call Druck
'hier muss dann wohl so etwas wie "gehe zurück zur Steuerdatei Tabelle1 nächstes Feld in Spalte  _
1 bis Ende und kehre zurück zum Anfang dieser Routine stehen
End 

Sub
Es sollte eigentlich gar nich sooooooo extrem schwierig sein. Nur durch Probieren komme ich natü _
rlich nie ans Ziel dank fehlender VBA-Kenntnisse. Leider.
Vielleicht reichen die Angaben so schon.
Vielen Dank für die Hilfe!
Gruss
Winfried

Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
23.11.2016 18:34:01
AlterDresdner
Hallo Winfried,
da Du Dich hartnäckig weigerst, meine Fragen zu beantworten (nicht so ganz ernst gemeint), hier ein erster Versuch:
Sub Ausführen()
Dim zeile As Long, aws As Object, newb As String
Set aws = ActiveWorkbook 'merken des aktiven WB
Application.ScreenUpdating = False 'um den Bildschirm ruhig zu halten
With ActiveSheet
'setzt voraus, dass das Makro vom Blatt Steuerung in Steuerdatei.xls gestartet wird
zeile = 1
While Not IsEmpty(.Cells(zeile, 1))
'setzt voraus, dass nach dem letzten Dateinamen in Spalte A nichts mehr steht
newb = .Cells(zeile, 1) 'Name des zu bearbeitenden WB
On Error Resume Next
Workbooks(newb).Activate 'damit Makro im richtigen WB abläuft
If Err Then Workbooks(newb).Open 'falls WB noch nicht offen
Err.Clear 'evtl. Fehler löschen
Application.Run newb & "!Modul1.Kalkulation" 'siehe unten!!!
If Err Then 'falls Fehler
Application.ScreenUpdating = True
MsgBox "Makro Kalkulation in Datei " & newb & " nicht ausgeführt!", vbCritical
Err.Clear
Application.ScreenUpdating = False
End If
Application.Run newb & "!Modul1.Formatierung" 'siehe unten!!!!!
If Err Then 'falls Fehler
Application.ScreenUpdating = True
MsgBox "Makro Formatierung in Datei " & newb & " nicht ausgeführt!", vbCritical
Err.Clear
Application.ScreenUpdating = False
End If
'"Modul1" anpassen! hier muss der Name des Objekts stehen,
'in dem das Makro aufgeführt ist (VBA-Editor linkes Fenster)
' kann sein: Diese Arbeitsmappe, Tabelle xyz, Modul abc...
aws.Activate 'zurück zum Start-WB
zeile = zeile + 1 'nächste Datei
Wend
End With
Application.ScreenUpdating = True
End Sub

Gruß der Martin
Anzeige
AW: Gleichnamige Makros in vielen geöffneten Dateien
23.11.2016 18:59:22
AlterDresdner
Hallo Winfried,
lies mal, was beim Clever Excel Forum über Crossposting steht (http://www.clever-excel-forum.de/thread-3037.html). Parallelarbeit finde ich nicht nett!
Dein Beitrag im Officeforum: http://www.office-loesung.de/p/viewtopic.php?f=166&t=727309
Der leicht verschnupfte Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige