Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Makro über VBA erweitern
#1
Thumbs Up 
Hallo liebes Forum. Bevor ich irgendwas erfrage, grundsätzliche Frage.
Ist es möglich, dass ich mit einem Makro ein weiteres Modul in einer Tabelle einfügen kann. Quasi wie eine Updatefunktion.
Antworten Top
#2
Hallo,

ja, das geht.

Voraussetzung: "Zugriff auf das VBA-Projektmodell vertrauen" ist in den Optionen (unter Trustcenter) angehakt.

Hinweis: Könnte aber auch ein Sicherheitsrisiko sein, das freizuschalten.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • Suprasod
Antworten Top
#3
Hallo,

so häufig sollte sich an einem Makro nichts ändern, dass man das per anderem Makro erledigen müsste. Da scheint mir ein Denkfehler drin zu sein.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
Guter Hinweis. Genau das ist in unserem Unternehmen nicht der Fall. 22

Klar hat das Gründe, aber es cancelt meine Idee. Sehr Schade.


Edit: Kann man Antworten nicht löschen? Die Antwort hier sollte eigentlich für Der_Steuerfuzzi sein.
Zitat:Hallo,

ja, das geht.

Voraussetzung: "Zugriff auf das VBA-Projektmodell vertrauen" ist in den Optionen (unter Trustcenter) angehakt.

Hinweis: Könnte aber auch ein Sicherheitsrisiko sein, das freizuschalten.


Gruß
Michael

Ja, siehe oben... *lach*
Antworten Top
#5
Hallo,

mit Makros beschäftige ich mich, seit es VBA in Excel gibt. Noch nie ist es in dieser langen Zeit erforderlich gewesen, ein Makro per Makro zu erweitern. Beschreibe mal, was genau du machen willst, ich bin sicher, es gibt eine bessere Lösung.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Warum frage ich?
Ich habe ein Formular in Excel gebastelt, über das man beim Betriebsrat Mehrarbeit beantragen kann. Das wird anschließend in eine PDF Datei gewandelt, damit die Datei von den Verantwortlichen digital signiert werden kann.

Da es beim ausfüllen simpelster Felder immer einen Spezialisten gibt der Dinge anders macht wie er sollte, kamen immer neue Prüfmechanismen und Automatismen rein.
Mein erstes Problem war, das die Datei dann jedes mal neu verteilt werden musste. Also hab ich eine Prüfung der Formularversion eingebaut. 

Stand heute lege ich eine neue Version (ich sag einfach mal 6.0) auf einen SharePoint, trage dann in einer Liste den neuen Wert der Version ein und in einem zweiten Feld den Link zur neuen Version. Öffnet jetzt jemand das Formular, dann wird die Versionsnummer verglichen. Bei einer Abweichung löschen sich alle Buttons im Dokument und es erscheint eine Message Box mit dem Hinweis, dass es eine neue Version gibt. Diese wird direkt im Kopf des Formulars verlinkt. Der Fokus wechselt auf den großen, rot leuchtenden Link, welcher nach dem klicken einen Direktdownload der neuen Version startet.

Eigentlich schon recht komfortabel. Die alte Datei macht sich außerdem unbrauchbar, weil nach dem Löschen der Buttons auch noch gespeichert wird (Hihi).

Da aber selbst das einigen Kollegen zu viel ist, hab ich mir Grundsätzlich die Frage gestellt, ob man die Version der Datei quasi Updaten kann, also nicht Spürbar für den Nutzer.
Meinetwegen noch mit einer Meldung à la "Update auf Version X.X ist erfolgt. Neuerungen:...".

Aus meiner Sicht eher eine nice to have Lösung.

Was ich aktuell gern noch Lösen würde ist, dass manuelles Drucken (inkl. print to PDF) nicht mehr möglich ist. Nur der existierende Button mit einem entsprechenden Makro soll das tun. Dieser Prüft nämlich erst eine Reihe von Kriterien und startet nur nach erfolgreicher Abfrage den Druck. Das hält aber niemanden Davon ab, den Druck manuell zu starten wenn man der Meinung ist, dass alles drin steht was rein soll. 
Ich wollte erst sämtliche Wege zum Drucken ausgrauen, habe dann aber gelernt, dass das neue Fluent Menüband die bisher funktionierenden Befehle ignoriert, weil es komplett anders aufgebaut ist. 
Aber ich weiche ab... Biggrinsmiley
Antworten Top
#7
Hallo,


hier mal ein link, in dem das Erzeugen eines neuen Modules bzw. das Einfügen/Ändern/Löschen von Prozeduren/Zeilen behandelt wird.

https://office-fragen.de/thread-27314.html

Wichtig wäre noch, dass die dazu nötige Bibliothek angehakt sein muss.
Willst du erforschen, was da so geht schreibe in ein Modul:

Code:
ThisWorkbook.VBProject
dann einen Punkt und du siehst was alles in diesem Kontext angeboten wird. Bedenke aber, man kann da auch Schaden anrichten, wenn man unsachgemäß damit umgeht.
Deshalb:
Probiere es in einer Umgebung aus, wo du niemanden schadest. Ich habe z.B. für meine Neugier eine virtuelle Box eingerichtet, wo ich solche Sachen testen kann. Wenn da mal was aus dem Ruder läuft - Box löschen und eine neu duplizieren - weiter gehts.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Suprasod
Antworten Top
#8
Hi,


Zitat: Quasi wie eine Updatefunktion.


Update ist hier wohl das Schlüsselwort. Wenn Du ein VBA Projekt ab und an aktualisieren willst, dann empfiehlt es sich, das Projekt als AddIn zu erstellen und dieses AddIn in der gewünschten Mappe einzubinden. In diesem AddIn können auch neue Module ergänzt oder bestehende abgeändert werden, ohne dass das eigentliche Datenblatt extra aktualisiert werden muss. Es sollte aber sichergestellt werden, dass das aktualisierte AddIn dann gespeichert wird, wenn kein Zugriff darauf erfolgt, also quasi nach Feierabend.
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
#9
Zum Thema AddIn bin ich raus. Ich bin froh, dass ich diverse Themen in VBA programmieren kann, aber wie und wo ich ein AddIn einbauen bzw. bauen kann wüsste ich nicht. 
Da du vermutlich 10x mehr Experte bist, wie ich es bin und je sein werde, stelle ich dir einfach mal die folgende Frage.

Angenommen es handelt sich um deine Datei. Diese hätte auch eine solche Versionsprüfung mit Downloadlink zur neuen Version (falls vorhanden) als Lösung. Wäre es dir die Mühe überhaupt wert so eine Updatefunktion zu implementieren, oder würdest du es beim Download belassen?
Antworten Top
#10
Hallöchen,

muss nicht unbedingt ein AddIn sein und wenn AddIn, muss es nicht unbedingt installiert werden. Hätte aber, wie Ralf schreibt, ein paar Vorteile.
Ein "normales" VBA-AddIn ist auch fast nichts anderes als eine "normale" Programmdatei. Vielleicht wichtigster Unterschied für Dich, abgesehen von der Möglichkeit des Einbindens oder Installierens, ist, dass da kein Blatt sichtbar ist wo Du vielleicht den einen oder anderen Button platzieren kannst. Aber das ist auch schon wieder vergleichbar mit einer ausgeblendeten Programmdatei.

Ist vor allem wichtig, die individuellen Dat(ei)en und das Programm zu trennen.

Zum Drucken kannst Du schauen, das Menü abzuändern. Siehe z.B.
hExcel-Einstieg-in-das-Thema-Ribbons-Teil-1
und die dort verlinkten Seiten.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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