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

Kompletten Code auslagern

Kompletten Code auslagern
20.04.2020 14:38:57
Frank
Hallo liebe Programmierer.
Für unser Unternehmen habe ich ein Tool für die Erstellung von Reparaturprotokollen erstellt. Es gibt eine (sich oft ändernde) Masterdatei. Beim Öffnen generiert diese Masterdatei eine persönliche Arbeitsmappe pro User mit entsprechendem Mappennamen. Das funktioniert sehr gut. Wäre da nicht das häufige notwendige Neugenerieren der persönlichen Mappen, weil ich die Mastermappe mit Bugfixes und neuen Funktionen ausgestattet habe. Natürlich nervt das meine Kollegen, welche mit dem Tool arbeiten müssen. Daher ist nun mein Gedanke, den Code komplett auszulagern. Habe hier im Forum einiges über den Befehl 'GetObject' gelesen und das man damit externen Code einbinden kann.
Meine Frage ist nun, was muss ich beim externen Code beachten oder umstricken, dass die Masterdatei als externer Codegeber nutzbar werden kann? Alle Speicherungen in den Tabellen sollen aber nicht in der Code-Mappe geschehen, sondern in den aufrufenden Mappen der User. Dazu zählen auch Blätter für den Ausdruck und den Labeldruck.
Weitere Details oder Code liefere ich bei Bedarf nach. Die komplette Datei hier hochladen bringt nichts, da zum Ausführen gewissen Voraussetzungen erfüllt sein müssen. U.a. muss ein Unterordner 'Protokolle' und ein Unterordner 'Sicherheitskopien-ESP' vorhanden sein und eine Barcodeschriftart installier sein. Außerdem musste ich wegen einiger User die Ausführung auf einen bestimmten Pfad hin prüfen, da auch noch ein DMS im Hintergrund mit den Daten gefüttert wird.
Vielleicht bekomme ich ja trotzdem wertvolle allgemeine Tipps zum Thema von euch.
Vielen Dank im Vorraus, Frank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kompletten Code auslagern
20.04.2020 15:10:04
Nepumuk
Hallo Frank,
lagere den Code in ein Addin aus welches du in einem Ordner speicherst auf den nur du Schreibrechte hast, alle anderen nur Leserechte. Da erleichtert dir das Ändern von Code im Addin. Dieses Addin bindest du per Verweis an die Mappe, dann kannst du ihn genauso verwenden wie wenn er in der Mappe wäre.
Gruß
Nepumuk
AW: Kompletten Code auslagern
20.04.2020 15:16:04
Frank
Hallo Nepumuk,
diesen Ansatz hatte ich auch schon ins Auge gefasst. Aber dazu muss ich an jeden PC ran und das ganze einrichten. Außerdem soll der Code mit vielen UserFormen ja nicht in jeder x-beliebigen Mappe geladen werden, sondern nur wenn die persönliche Mappe zur Protokollerstellung geöffnet wird.
Gruß Frank
Anzeige
AW: Kompletten Code auslagern
20.04.2020 15:19:54
Nepumuk
Hallo Frank,
durch den Verweis auf das Addin wird dieses nur geladen wenn du die Mappe mit dem Verweis öffnest, bei anderen Mappen nicht. Und du musst an den anderen PC's nichts einstellen.
Gruß
Nepumuk
AW: Kompletten Code auslagern
20.04.2020 15:27:28
Daniel
HI
die Frage ist, ob das soviel bringt.
ggf kannst du dich mit folgender Struktur anfreunden:
der Code ist nur in der Masterdatei.
die persönlichen Mappen enthalten nur Daten außer folgendem Code im Workbooks.Open-Event:
beim öffnen der persönlichen Mappe wird die Masterdatei automatisch nachgeladen (schreibgeschützt) und die Daten aus der persönlichen Mappe in die Masterdatei kopiert.
der Anwender arbeitet dann mit seinen Daten immer in der neusten Version der Masterdatei.
in der Masterdatei musst du dann natürlich im BeforeSave programmieren, dass die geänderten Daten wieder in die persönliche Mappe übertragen werden und diese Mappe gespeichert wird, nicht die Masterdatei (diese Automatik musst du natürlich stillegen, wenn du an der Masterdatei was ändern willst.
so trennst du Code und Daten und kannst die Masterdatei weiterenticklen und mit neuen Funktionen anreicheichern, ohne dass der Anwender damit belästigt wird.
Gruß Daniel
Anzeige
AW: Kompletten Code auslagern
20.04.2020 15:51:01
Frank
Hallo Daniel,
dein Ansatz ist genau mein Plan. Nur komme ich damit nicht klar. Zum Beispiel, was muss die Arbeitsmappe (ohne Code) alles beinhalten und was nicht. Stichwort Tabellenblätter für Ausdruck und Statistik. In der Mappe mit dem Code sollen keine Daten gespeichert werden, diese gehen direkt ins DMS und in eine weitere persönliche Sicherungsmappe.
Und wenn ich die Masterdatei schreibgeschützt nachlade, kann ich ja keine Daten da rein kopieren, oder verstehe ich da was falsch?
Habe gerade versucht, meine Mappe doch hochzuladen. Sie ist aber über 600kB groß und das ist hier nicht möglich.
Anzeige
AW: Kompletten Code auslagern
20.04.2020 16:20:22
Frank
Habe die Masterdatei samt erforderlicher Ordner mal gezippt und in meine Dropbox geladen.
Hier ist der Link dafür
https://www.dropbox.com/t/Oy5dbYDmCLTBzZ8W
Bei Bedarf zum Verständnis bitte herunterladen.
Frank
AW: Kompletten Code auslagern
20.04.2020 17:01:17
Daniel
Hi
in die persönliche Mappe sollten nur Daten, möglichst unformatiert und so strukturiert, dass bei Änderungen möglichst wenig verändert werden muss.
dh wenn neue Spalten benötigt werden, sollten diese am ende hinzugefügt werden, damit es leicherter für den neuen Code ist, auch persönliche Mappen zu verarbeiten, die noch auf dem alten Stand sind.
für alles weiteren Fragen habe bitte Verständnis dafür, dass die Beschäftigung mit deinem Thema über das hinausgeht, was ich hier unter kostenfreier Nachbarschaftshilfe verstehe.
wenn du da Beratung brauchst, solltest du dich an einen Profi wenden.
für einzel- oder spezielle Fragen ist ein Forum sicherlich gut, aber das hier ist doch ein umfangreicheres Thema, das bei einem Profi sicherlich besser aufgehoben ist (was schon damit anfängt, dass du dann deine Dateiten nicht mehr im Internet veröffentlichen musst.
was deine Frage angeht:
eine Schreibgeschützt geöffnete Datei kannst du natürlich ändern. Die Änderung passiert ja zunächst nur bei dir auf dem Rechner. Du kannst nur nicht diese Datei dann unter gleichem Namen wieder auf dem Server speichern.
Gruß Daniel
Anzeige
AW: Kompletten Code auslagern
20.04.2020 19:17:45
Frank
Hi Daniel,
das mit der Nachbarschaftshilfe verstehe ich.
Gut, dann beschränke ich mich noch auf zwei Fragen.
1. Wie lade ich eine Mappe nach, rein mit Workbooks.Open(Datei), oder gibts da was anderes?
2. Wie übergebe ich eine Variable von der Arbeitsmappe an die Mastermappe, also z.B. Name des Workbooks? Oder muss ich dazu eine leere Zelle in einem Tabellenblatt missbrauchen?
VG Frank
AW: Kompletten Code auslagern
20.04.2020 20:47:42
Daniel
hi
das Nachladen der Masterdatei muss über das WorkbookOpen-Event der persönlichen Datei erfolgen.
allerding nur indirekt, dh der Code zum Öffnen steht als normales Makro in einem allgemeinen Modul und und muss mit Application.OnTime gestartet werden.
Das stellt sicher, dass die Masterdatei erst geladen wird, wenn der Öffungsprozess der pers. Datei abgeschlossen ist. Das WorkbookOpen selbst wird schon früher ausgeführt (Öffnungsprozess noch nicht vollständindig abgeschlossen) und das kann dann zu Problemen führen.
im WorkbookOpen-Event der Masterdatei läufst du dann mit einer schleife über die göffneten Dateien und prüfst anhand bestimmter Merkmale, welche der geöffneten Dateien in Frage kommt(Blattnamen, Spaltenüberschriften usw.)
gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige