Clever-Excel-Forum

Normale Version: Makro per Makro in vielen Dateien einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, ich brauche schon wieder mal eure Hilfe... bitte um Tipps.

Bei uns gibt es für jedes Artikel eine Parameterkarte in der ca 200 Werte stehen und als einzelne Exceldatei gespeichert werden.
Die hilft uns wenn wir die Anlage auf ein neues Produkt umstellen.
Leider wird dieses Datei immer wieder geändert ohne Bemerkungen. Unter anderen wird die Anlagegeschwindigkeit oft manipuliert.
Die Parameterkarten sind nicht identisch, manchmal werden zellen zusammengeführt um längere bemerkungen zu schreiben.
Oft sind Bilder und Einweisungen auch beigefügt.

Mein Vorgesetzter möchte, dass festgehalten wird, wenn Die Datei geänderet wird. Ich überlege ein  Makro zu machen, der beim öfnnen der Parameterdatei ausgeführt wird. Dann soll die die erste Tabelle kopiert werden und als zweite Tabelle eingefügt werden. Den zweiten Tabellennamen in Datum und Uhrzeit ändern zb username_13072023_0416 und dann die zweite Tabelle unsichtbar machen. Dann könnte er immer nachschauen wann und wer was geändert hat, falls die Datei am Ende gespeichert wurde. Das werde ich mit Makrorecorder bestimmt hinbekommen. Es gibt bestimmt bessere Lösungen, aben meine excel Fähigkeiten sind begrenzt.

Wir haben aber über 800 Parameterkarten. 
Gibt es eine Mögligkeit den Makro per Makro in alle Exceldatein von einem bestimmten Ordner einzufügen?

LG perostojkov
Hallo

ich habe mal etwas ausgetüfftelt, vielleicht haben die Kollegen dazu noch eine bessere Idee??

Meine Überlegung war, eine Copy Datei -unsichtbar im Hintergrund- zu öffnen, und eine Copy Tabelle nur zu erstellen wenn Änderungen vorgenommen wurden. Ansonsten schliesst sich die Copy Datei wieder.  Es handelt sich um eine alte xla Datei (als ADD In). Beim Öffnen der Test Änderungen werden alle Daten aus Tabelle1 Range("A1:D10") in die ADD Datei Tabelle(1) kopiedrt. Vor dem Schliessen wird geprüft ob es Änderungen gibt. Dann wird die AD-In Tabelle1 mit deinem Namen umbenannt, ans Ende kopiert, und auf unsichtbar gestellt.

Deine Aufgabe ist es im Makro Sub Workbook_Open die richtigen Pfad Namen und Range Bereiche zum kopieren anzugeben.
Im Makro Sub Workbook_BeforeClose musst du selbst den neuen Dateinamen erstellen. Zum Testen nahm ich "Neues Blatt"

Die normalen Mitarbeiter bekommen von der offenen ADD Datei nichts mit.  Man sieht sie nur im VBA Editor als offen!
Im Herber Archiv fand ich einen Code um das Makro in 800 Dateien zu kopieren.  Er muss noch um das Dateien Öffnen erweitert werden.

Würde mich freuen wenn diese vielleicht ungewöhnliche Idee in der Praxis funktioniert.

mfg Gast 123

Code:
'Code aus Herber Archiv
'Dim myVBComponents As Object


Sub VBAcode_kopieren()
Dim varDatei As Variant, i As Integer
Dim Datei As String, scode1 As String
Application.DisplayAlerts = False
varDatei = Application.GetOpenFilename() ' Datei wählen
If varDatei = False Then Exit Sub        'ggf. Abbruch
Datei = Right(CStr(varDatei), InStr(1, StrReverse(CStr(varDatei)), "\") - 1) ' Dateiname
With ThisWorkbook.VBProject.VBComponents("Tabelle1").CodeModule '--- Zeichnet den Code von _
     Tabelle1 in dieser Arbeitsmappe auf
     scode1 = .Lines(1, .CountOfLines)
End With
Workbooks.Open Filename:=varDatei  'öffnet die neue arbeitsmappe
With Workbooks(Datei).VBProject.VBComponents("Tabelle1").CodeModule
     'Löscht Code in der geöffneten Arbeitsmappe in Tabelle1
     .DeleteLines 1, .CountOfLines
End With
'fügt den neunen Code in die geöffnete Arbeitsmappe ein
Workbooks(Datei).VBProject.VBComponents("Tabelle1").CodeModule.AddFromString scode1
Workbooks(Datei).Save
Workbooks(Datei).Close   'blendet Vba aus
Application.VBE.MainWindow.Visible = False
End Sub
Hallo, Danke, ich habe das mit Makro Recorder etwas anderes gelöst. Siehe Bild, sorry kann kein Code senden, alle Rechner sind gesperrt.

Aber wie füge ich diese 3 kleine Scripte auf ein Mal in alle 800 Excel-Dateien?



LG
Hallo, habe die Antwort hier gefunden.

LG perstojkov
Hi,

so, wie das aussieht, scheint es sich um 800 identische Dateien zu handeln. Stellt sich natürlich die Frage, wozu das gut sein soll. Kann mir nicht vorstellen, dass Du 800 Mitarbeiter hast, die alle eine individuelle Datei brauchen. Und selbst wenn, dann solltet ihr über eine Datenbank nachdenken..,.,.,
Doch wenn man, warum auch immer, immer und immer wieder die gleiche Exceldatei braucht, dann sollte man sich zumindest ein Template erstellen...