Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: XLAM

XLAM
11.04.2021 09:53:31
Jens
Hallo Excel Fan-Gemeinde,
ich bekomme folgendes nicht hin:
Ich möchte (soweit möglich) sämtlichen Makro-Code nicht in einer Excel selbst sondern in einer XLAM Datei speichern.
Hintergrund: Der Code wird ständig weiterentwickelt und die Datei wird von verschiedenen Kollegen inhaltlich bearbeitet.
Was soll genau passieren:
Die "umherkreisende" Excel Datei sollte mit keinem (oder möglichst wenigem) VBA-Code belastet werden.
Wenn ich sie weiterverarbeiten möchte, dann möchte ich den passenden VBA-Code über eine XLAM zuladen
(VBA-Editor - Extras - Verweise). So bliebe die Datei "sauber".
Nun soll aber neben den Informationen aus dieser Datei bei der Verarbeitung noch eine weitere Datei geladen werden und Daten kopiert werden. Und hier scheitere ich mit den ThisWorkbook und dem neuen Workbook Angaben (wkb), wenn ich auf die verschiedenen Workbooks zugreifen möchte.
Hier ein Beispiel, wo der Code noch in der Excel selbst ist und nach Klick auf die Lupe zum Laden aus einer Kundendatei aufruft:
https://www.herber.de/bbs/user/145449.zip
Wer kann mir hier helfen?
Danke
Jens
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XLAM
11.04.2021 10:39:37
ralf_b
moin,
wenn ich mich recht erinnere, klappt das mit dem Thisworkbook in Addins nicht . Also hier zieht das Activeworkbook um in der offenen Datei zu arbeiten.
AW: XLAM
11.04.2021 12:02:26
Nepumuk
Hallo Jens,
Thisworkbook im Addin ist das Addin. Lege ich der Mappe einen unsichtbaren Namen an an dem das Addin die Mappe identifizieren kann. Beispiel:
Public Sub NamenEinfuegen()
ThisWorkbook.Names.Add Name:="MeinName", RefersTo:=Array(0), Visible:=False
End Sub

Diese Prozedur nach dem Ausführen wieder löschen. Diesen Namen findest du auch im Klassenmodul des Addins.
Ich habe dir das Ganze mal eingebaut:
https://www.herber.de/bbs/user/145454.zip
Beachte: Ein Verweis auf ein Addin bleibt nach dem Schließen der Mappe nur erhalten, wenn die Mappe mindestens ein leeren Modul enthält. Und der Projektname das Addins darf nicht der selbe sein wie der der Mappe.
Gruß
Nepumuk
Anzeige
AW: XLAM
12.04.2021 18:10:11
Bastler_HH
Hallo Nepumuk,
vielen Dank - funktioniert irgendwie ;-)
Ich muss nur noch verstehen warum und wie :-) .. aber das finde ich noch heraus.
Vielen Dank für den Ansatz!
Gruß
Jens
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

XLAM in Excel: So speicherst du Makro-Code effizient


Schritt-für-Schritt-Anleitung

  1. Erstelle eine neue XLAM Datei:

    • Öffne Excel und gehe zu Datei > Neu.
    • Wähle Leere Arbeitsmappe und speichere sie dann als Excel-Add-In (.xlam) über Datei > Speichern unter und wähle den Dateityp Excel-Add-In.
  2. Füge deinen VBA-Code hinzu:

    • Öffne den VBA-Editor mit Alt + F11.
    • Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf dein Projekt klickst und Einfügen > Modul wählst.
    • Schreibe oder füge deinen VBA-Code in dieses Modul ein.
  3. Verlinke die XLAM Datei in deiner Arbeitsmappe:

    • Gehe zurück zu Excel und öffne die Arbeitsmappe, in der du den Code verwenden möchtest.
    • Öffne den VBA-Editor erneut und gehe zu Extras > Verweise.
    • Klicke auf Durchsuchen und wähle deine .xlam Datei aus.
  4. Verwende die Funktionen aus der XLAM:

    • Du kannst jetzt die im Add-In definierten Funktionen in deiner Arbeitsmappe verwenden, ohne VBA-Code direkt in die Excel-Datei einzufügen.

Häufige Fehler und Lösungen

  • Fehler: "ThisWorkbook" verweist nicht auf die richtige Datei:

    • Stelle sicher, dass du im Add-In "ThisWorkbook" korrekt verwendest. In einem Add-In bezieht sich "ThisWorkbook" auf die XLAM Datei selbst, nicht auf die aktive Arbeitsmappe.
  • Fehler: Verweis auf die XLAM Datei fehlt:

    • Überprüfe, ob die XLAM Datei korrekt verlinkt ist. Gehe zu Extras > Verweise und stelle sicher, dass die .xlam Datei angehakt ist.
  • Fehler: Add-In wird nach Schließen der Mappe nicht gespeichert:

    • Stelle sicher, dass deine Arbeitsmappe mindestens ein leeres Modul enthält. Andernfalls wird der Verweis auf das Add-In nicht gespeichert.

Alternative Methoden

  • Verwendung von .xlsm Dateien:

    • Du kannst auch eine normale Excel-Arbeitsmappe (.xlsm) verwenden, um VBA-Code zu speichern, jedoch wird die Datei dann immer größer und unübersichtlicher.
  • VBA-Projekte in einer Bibliothek speichern:

    • Eine andere Möglichkeit ist es, deine VBA-Projekte in einer DLL oder COM-Bibliothek zu speichern, was jedoch komplexer ist und Kenntnisse in der Programmierung erfordert.

Praktische Beispiele

  1. Ein einfaches Makro in einer XLAM Datei speichern:

    Public Sub Gruß()
       MsgBox "Hallo, willkommen im XLAM!"
    End Sub
  2. Daten aus einer Arbeitsmappe kopieren:

    Public Sub DatenKopieren()
       Dim Quelle As Workbook
       Dim Ziel As Workbook
    
       Set Quelle = Workbooks("QuellDatei.xlsx")
       Set Ziel = ThisWorkbook ' ThisWorkbook ist die XLAM Datei
    
       Quelle.Sheets(1).Range("A1:B10").Copy Ziel.Sheets(1).Range("A1")
    End Sub

Tipps für Profis

  • Verwende unsichtbare Namen: Lege einen unsichtbaren Namen in der Arbeitsmappe an, um sie später im Add-In zu identifizieren. Dies kann helfen, wenn du mit "ThisWorkbook" arbeitest.

  • Dokumentation im Code: Kommentiere deinen VBA-Code gut, damit du und andere Benutzer verstehen, was jeder Abschnitt des Codes macht.

  • Regelmäßige Backups: Speichere regelmäßig Backups deiner XLAM Datei, besonders wenn du häufig Änderungen vornimmst.


FAQ: Häufige Fragen

1. Was ist eine XLAM Datei?
Eine XLAM Datei ist ein Excel-Add-In, das Makros und VBA-Code enthält. Sie ermöglicht es, Code zu modularisieren und in mehreren Excel-Dateien zu verwenden.

2. Wie lade ich eine XLAM Datei in mein Projekt?
Du kannst eine XLAM Datei über den VBA-Editor unter Extras > Verweise hinzufügen. Wähle die .xlam Datei aus deinem Speicherort aus.

3. Kann ich XLAM Dateien in Excel Online verwenden?
XLAM Dateien sind nicht mit Excel Online kompatibel, da dieser keine VBA-Makros unterstützt. Du musst Excel Desktop verwenden, um mit XLAM Dateien zu arbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige