Office: (Office 2019) Makro-Vorlagedatei

Helfe beim Thema Makro-Vorlagedatei in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe zahlreiche Excel-Dokumente mit komplett identischen Makros (Urlaubsscheine). Wenn ich jetzt am Code entwas ändere, muss ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von woerli, 4. März 2021.

  1. woerli Erfahrener User

    Makro-Vorlagedatei


    Hallo,

    ich habe zahlreiche Excel-Dokumente mit komplett identischen Makros (Urlaubsscheine).
    Wenn ich jetzt am Code entwas ändere, muss ich logischerweise jede Datei einzeln öffnen und den entsprechenden Code ändern. Daher hätte ich gerne eine zentrale Datei, in der alle Funktionen gespeichert sind. Geht so etwas?

    Ich vermute, bestimmte Dinge müssen in der jeweiligen Urlaubsscheindatei drin sein (Variablendefinition, Funktionen für einzelne Schaltflächen). Aber alle anderen Funktionen kann ich doch bestimmt auslagern... Die Frage ist nun, wie verweise ich auf eine Funktion in einer anderen Datei?

    Oder gibt es in Excel direkt eine Möglichkeit, eine Art "Vorlage", aus der sich eine Excel-Datei beim öffnen ihre Makros holt, damit z.B. wirklich alles (inkl. Variablendefinition und Schaltflächenfunktionen) nur noch an einer zentralen Stelle auftauchen?

    Ich benötige dann nur noch diese Vorlage zu aktualisieren und alle Dokumente profitieren davon.

    Vielen Dank im Voraus!
     
    woerli, 4. März 2021
    #1
  2. DL_
    DL_ PowerQuery Guru
    Moin

    So viele Fragezeichen.

    Wofür benötigt man bei einem Urlaubsschein Makros?
    Und warum müssen die Makros überhaupt geändert werden?
    Und wenn geändert werden muss warum dann auch die bereits abgelaufenen Urlaubsscheine?
    Warum überhaupt Excel und nicht Word?

    Erstelle ein Add-In.
     
  3. Beverly
    Beverly Erfahrener User
    Hi,

    du kannst eine "Master"-Arbeitsmappe erstellen, in der du alle die Makros ablegst die hin und wieder geändert werden müssen, sodass du sie nur einmal ändern musst. Aus den anderen Mappen kannst du sie dann entsprechend aufrufen - nach diesem Prinzip:

    Code:
    Sub MakroAndereArbeitsmappe()
        Application.Run ("MasterMappe.xlsm!Hallo")   '<== Name der Mappe mit den Makros sowie Makroname
    End Sub
    
    Bedingung ist natürlich, dass diese Master-Mappe geöffnet ist, aber das kann man natürlich vorher prüfen und sie bei Bedarf öffnen.
    Du musst allerdings bedenken, dass jeder, der die Makros über die Schaltflächen aufruft, diese Master-Mappe zur Verfügung haben muss.



    Makro-Vorlagedatei GrußformelMakro-Vorlagedatei Beverly's Excel - Inn
     
    Beverly, 4. März 2021
    #3
  4. woerli Erfahrener User

    Makro-Vorlagedatei

    Hi und danke für die sinnvolle Antwort @Beverly
    Ich konnte es erst jetzt testen und sehe da noch ein paar Probleme.

    Zunächst das Grundprinzip, wie ich es getestet habe:
    Eine Datei "Test.xlsm" dient als Eingabemaske, bestehend aus einer Schaltfläche zum starten einer Addition sowie zwei vorgegebenen Zahlen.
    Der Code in der Tabelle, welche die Zahlen enthält:
    Code:
    Dim x&, y&, z&
    
    Private Sub CommandButton1_Click()
    x = Cells(1, 2)
    y = Cells(1, 3)
    Application.Run ("MTest.xlsm!test")
    z = x + y
    Cells(1, 1) = z
    End Sub
    Die zweite Datei "MTest.xlsm" soll den Code enthalten. Dieser steht jetzt nicht in einer Tabelle, sondern direkt in "DieseArbeitsmappe":
    Code:
    Dim x&, y&, z&
    
    Sub test()
    z = x + y
    End Sub
    Ich öffne beide Dateien und bestätige, das Makros ausgeführt werden dürfen.
    Dennoch erhalte ich die Meldung, das Makro sei nicht verfügbar oder die Ausführung von Makros unterbunden.

    Unabhängig von dem grundelgenden Problem habe ich aber noch weitere Bedenken, ob ich mit der Variante zum Ziel kommen kann:

    1. Das "Masterdokument" mit den Makros muss mit geöffnet werden und je nach Sicherheitseinstellungen muss der User dort ebenfalls Makros jedes Mal bestätigen. Ich kann das alkso nicht automatisieren, sondern die User müssten immer beide Dokumente manuell öffnen.

    2. Die verschiebenen Funktione enthalten Formeln mit zahlreichen Variablen. Wenn ich im Masterdokument mit den Makros eine Funktion ausführe, die Werte aus "Cells(x,y)" verarbeiten soll, dann dürfte diese Funktion ja die lokalen Werte verwenden wollen. Ich müsste also explizit dazuschreiben, in welcher Mappe die Cells(x,y) sind, womit ich wieder bei einem Makro für jeden User und dessen Datei wäre.
    Alternativ muss ich alles komplett überarbeiten und einen Weg finden, wie ich alle notwendigen Variablen korrekt an die andere Mastermappe übergebe. Falls das denn geht?

    Direkt eine Art Vorlage wie im Word die Formatvorlagen, die sich im Hintergrund mit öffnen, gibt es nicht für diesen Zweck?
     
    woerli, 12. März 2021
    #4
  5. Exl121150 Erfahrener User
    Hallo,

    so wie man in Word Dateivorlagen in Dateien wie "*.dot", "*.dotx", "*.dotm" (z.B. "Normal.dot", "Normal.dotx", "Normal.dotm") speichern kann, so kann man dies auch in Excel machen:
    in Dateien mit Dateierweiterung "*.xlts", "*.xltx", "*.xltm" (zB. "Vorlage Aufmass2.xltm")
    Die Dateien mit "*.xlts" (altes binäres Format) und "*.xltm" (neues komprimiertes XML-Format) können auch VBA-Makros enthalten.

    Darüber hinaus gibt es mehrere Standardspeicherorte, die abgegrast werden, sobald du die Excel-Applikation startest.
    Diese Orte kannst du in den Excel-Optionen einstellen im Tabulator "Speichern" im Abschnitt "Arbeitsmappen speichern":
    "Lokaler Standardspeicherort für Dateien": Pfad für "normale" Arbeitsmappen
    "Standardspeicherort für persönliche Vorlagen": Hier kann man zB. die "PERSONAL.XLSB"-Datei ablegen, die im Hintergrund geöffnet wird. Ihre VBA-Funktionen und VBA-Makros hat man dann automatisch zur Verfügung, zusätzlich zur im Vordergrund geöffneten Excel-Datei. Wenn du einen Makro-Dialog startest (zB. mit Alt+F8) kannst du im Dialogfenster unter "Makros in:" die Orte angeben ("Alle offenen Arbeitsmappen"/ "Diese Arbeitsmappe"/ "PERSONAL.XLSB"/ "Mappe1"/ ...)
    "Dateispeicherort für AutoWiederherstellen": falls sich einmal eine Datei verabschiedet haben sollte.
    Ferner bekommst du im Optionen-Tabulator "Add-Ins" die Pfade für die vorhandenen Add-Ins, wobei der Typ "Excel-Add-In" auf Dateien mit Erweiterung ".xla" (alt) und ".xlam" (neuer komprimierter XML-Typ) verweist. Diese werden alle, wenn sie aktiv sind, auch automatisch geladen.
     
    Exl121150, 12. März 2021
    #5
  6. Auch wenn Du @DL_ (indirekt) eine sinnvolle Antwort absprichst, hat er Dir den entscheidenden Tipp gegeben:
    Dies erstellst Du in einem Ordner, in dem nur Du Schreibzugriff hast und erstellst einen Verweis in der zu erstellenden Excel-Vorlage.
    Der Anwender kann jetzt eine neue Datei auf Basis der Vorlage erstellen und das Add-In werkelt im Hintergrund.
    Du (als Admin) kannst es jederzeit im laufenden Betrieb aktualisieren, der Anwender bekommt davon nix mit und hat beim nächsten Öffnen aktuelle Makros.
    Aber das ist nichts für Anfänger und auch eher nichts für einen Workshop im Rahmen eines Foren-Threads.

    Gruß Ralf
     
  7. Beverly
    Beverly Erfahrener User
    Hi,

    Die Makros gehören nicht ins Codemodul DieseArbeitsmappe sondern in ein Standardmodul.

    Selbstverständlich ist das möglich - nach diesem Prinzip: Workbooks("DieseMappe.xlsm").Worksheets("Tabelle").Cells(1, 1)


    Makro-Vorlagedatei GrußformelMakro-Vorlagedatei Beverly's Excel - Inn
     
    Beverly, 12. März 2021
    #7
Thema:

Makro-Vorlagedatei

Die Seite wird geladen...
  1. Makro-Vorlagedatei - Similar Threads - Makro Vorlagedatei

  2. Name der Datei durch Excel geändert

    in Microsoft Excel Hilfe
    Name der Datei durch Excel geändert: Hallo und guten Abend, Die Datei wird mittels Button (VBA) zwischen gesichert. Das Makro sichert zuvor die Datei und erstellt zus. eine Sicherungsdatei mit der Erweiterung Beispiel-"Sich"....
  3. Ein Makro für mehrere Register

    in Microsoft Excel Hilfe
    Ein Makro für mehrere Register: Moin, ich habe ein Makro wo Daten aus dem Register Master kopiert werden und Register, das mit einem Datum beschriftet ist. Ich möchte in Jedem Register ein Button haben was Daten aus dem Master...
  4. Makro öffnet unerwartete Datei

    in Microsoft Excel Hilfe
    Makro öffnet unerwartete Datei: Hallo Forum, ich brächte euer Schwarmwissen. Arbeite mit Excel eine Auftragsbearbeitung. Dort habe ich mir einen Button mit Makro erstellt und nutze diesen schon lange. Das Makro generiert ein...
  5. Leerzeilen entfernen

    in Microsoft Word Hilfe
    Leerzeilen entfernen: Hallo in die Runde, ich habe das Problem bzw. den Wunsch in einem DOC die Leerzeilen zu entfernen und das per Makro. Allerdings gelingt es nicht Hintergrund das DOC wird aus einer Dot-Datei...
  6. Makro Schaltflaechen vervielfaeltigen sich....

    in Microsoft Excel Hilfe
    Makro Schaltflaechen vervielfaeltigen sich....: Hallo Zusammen, ich habe eine Exceldatei, die seit ein paar Wochen sehr langsam zu öffnen und zu bearbeiten ist. Zuvor war sie ca. 8MB gross, was sich verdoppelt hat. Ich habe alle Zellen die...
  7. Seit Win 11 Zugriffsprobleme bei Excel über Makros

    in Microsoft Excel Hilfe
    Seit Win 11 Zugriffsprobleme bei Excel über Makros: Guten Tag! Ich habe vor einer Woche mein Windows 10 auf Windows 11 geupgraded, und seitdem habe ich extreme Schwierigkeiten mit meinem Excel. Mit Windows 10 funktionierte alles so, wie es sollte,...
  8. VBA-Makro zur Zellenformatierung Syntax probleme

    in Microsoft Excel Hilfe
    VBA-Makro zur Zellenformatierung Syntax probleme: Hallo zusammen, ich möchte per Makro Zellen formatieren. Tausender-Trennzeichen 3 Nachkommastellen Positive Zahlen Schwarz Negative Zahlen Rot Nullwert mit - Hinter der Zahl soll noch eine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden