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_ hat Ahnung
    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. RPP63
    RPP63 Erfahrener User
    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. Makro zum Summieren

    in Microsoft Excel Hilfe
    Makro zum Summieren: Hallo Zusammen, in der Beispieldatei in Zeile 12, sind Ausschuss Teile eingetragen. z.B in Schicht 1 von Stunde 1 bis Stunde 8 ,13 Stück. Wobei in der letzen Zelle der Schicht1,also in J12 die...
  3. Access Formular aktualisieren durch Dropdown-Liste

    in Microsoft Access Hilfe
    Access Formular aktualisieren durch Dropdown-Liste: Hallo, ich bin ein absoluter Neuling in Access, und bin gerade dabei aus dienstlichen Gründen ein Nachschlagewerk in Access zu erstellen. Ziel des im Screenshot angehängten Formulars soll es...
  4. VBA Spalten aus- und einblenden trotz Blattschutz

    in Microsoft Excel Hilfe
    VBA Spalten aus- und einblenden trotz Blattschutz: Guten Tag Ich habe eine Übersicht, in dem die Urlaubszeiträume meiner Kollegen eingetragen werden sollen. Neben Namen, Vornamen und Zeitraum sollen noch weitere spezifische Daten eingetragen...
  5. Zeitstempel aus Stoppuhr bei Notizen

    in Microsoft Word Hilfe
    Zeitstempel aus Stoppuhr bei Notizen: Moin, lange gesucht und nichts gefunden, deshalb hier der Versuch: Ich will bei meinen Notizen einen Zeitstempel haben, der sich nicht an der eigentlich Zeit orintiert, sondern an einer Stoppuhr....
  6. Makro für Hintergrundfarben

    in Microsoft Word Hilfe
    Makro für Hintergrundfarben: Hi, Ich konnte Makros für Textfarben erstellen, damit ich vorgefertigte Farb-Icons im Menü habe. z.B. Sub fontRed() Selection.Font.ColorIndex = wdRed End Sub weiss jemand ob das auch mit...
  7. VBA Makro abbrechen durch Inputbox

    in Microsoft Word Hilfe
    VBA Makro abbrechen durch Inputbox: Hallo zusammen, dank Gerhard H aus diesem Forum habe ich das folgende Makro im Einsatz, bei dem eine Spalte einer Tabelle in Word auf einen vom Anwender eingegebenen Begriff durchsucht wird und...
  8. Makro ändern auf Excel4Macro

    in Microsoft Excel Hilfe
    Makro ändern auf Excel4Macro: Hallo Zusammen, vor einiger Zeit hat ein Kollege von mir das unten stehende Makro geschrieben. Hier werden Dateien geöffnet und Werte ausgelesen. Leider werden die Dateien alle geöffnet und...
  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