Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro per Makro in vielen Dateien einfügen
#1
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
Antworten Top
#2
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


Angehängte Dateien
.xls   Test Änderung.xls (Größe: 38,5 KB / Downloads: 0)
.xla   Daten Copy.xla (Größe: 18 KB / Downloads: 1)
Antworten Top
#3
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


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#4
Hallo, habe die Antwort hier gefunden.

LG perstojkov
Antworten Top
#5
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...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste