Herbers Excel-Forum - das Archiv

Auf Modul in 2. Datei verweisen

Bild

Betrifft: Auf Modul in 2. Datei verweisen
von: Jens

Geschrieben am: 17.12.2006 12:08:27
Hallo,
ich möchte von einem bestehenden Kontextmenü in Datei1 auf ein Modul in Datei2 verweisen, so dass dieses in Datei1 ausgeführt wird.
Beim erstellen des Kontextmenüs habe ich dies schon hinbekommen, allerdings ist das dort ein Button, den ich über Excelfunktionen einfach das Makro (in Modul der Datei2) zuweisen kann. Im Prinzip soll es genauso für die einzelnen Befehle im Kontextmenü geschehen, eben dann über VB.
Hintergrund ist, dass mehrere Dateien auf das gleiche Makro zugreifen sollen, um im Updatefall nicht in jeder Datei die Module ausgetauscht werden muss.
Beispiel:
'Neues Menü erstellen in Datei1 (Ausschnitt)
Set NeuesMenü = .Controls.Add(msoControlButton)
With NeuesMenü
.Caption = "Tagschicht"
.OnAction = "Tagschicht"
End With
'Dies ist, was der Eintrag "Tagschicht" in Datei2 dann ausführt:
Sub Tagschicht()
FesteSchicht
'MsgBox "Spalte: " & WoTag & " Tagwert: " & Tage
With Range(ActiveCell, ActiveCell.Offset(0, Tage))
.FormulaR1C1 = "T"
.Interior.ColorIndex = 40
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
End Sub

Ich erinnere mich, beim VBA-Lehrgang noch ein anderen Weg für die "Updatefunktion" behandelt zu haben, bekomme das leider nicht mehr zusammen. Vielleicht kann man die .bas-Datei viel einfacher über einen Update-Button in der Tabelle importieren und das alte bestehende Modul löschen (?).
Grüße vom Jens
Bild

Betrifft: AW: Auf Modul in 2. Datei verweisen
von: Jan
Geschrieben am: 17.12.2006 12:12:03
Hi,
speicher den Code in einem Addin.
mfg Jan
Bild

Betrifft: AW: Auf Modul in 2. Datei verweisen
von: Jens

Geschrieben am: 17.12.2006 12:57:09
Das ist schon mal ein guter Tipp, danke.
Hab die Makrodatei jetzt als Add-In, Module werden in Datei1 mitgeladen. Sub´s Public gemacht, damit man drauf zugreifen kann. Stell ich jetzt jedoch die Arbeitsmappe unter "VBA-Projekt" auf TRUE, wird meine Tabelle in Datei1 unsichtbar. Was mach ich falsch?
Bild

Betrifft: AW: Auf Modul in 2. Datei verweisen
von: Jens
Geschrieben am: 17.12.2006 13:07:23
Noch was, im BV-Editor sind die beiden Dateien ja geöffnet, wenn das Add-In "True" ist. Das Sub in dem Add-In wird aber nicht gefunden, obwohl es Public ist.
Bild

Betrifft: AddIns sind als separate Mappe ohne...
von: Luc:-?

Geschrieben am: 17.12.2006 14:54:47
...relevanten Blattinhalt anzulegen, Jens.
Das sollte man eigentlich in einem VBA-Kurs gelernt haben, sonst hat der wohl nicht viel getaugt (was ich für sehr wahrscheinlich halte). AddIns (...xla) sind immer unsichtbar! Ansonsten musst du das AddIn mit dem AddIn-Manager laden (Häkchen setzen) und es startet immer mit Excel. Außerdem findest du in Excel-Foren-Archiven noch 'ne Menge Aussagen (auch von mir) über sinnvolle Ablageordner für AddIns.
Gruß Luc :-?
Bild

Betrifft: AW: AddIns sind als separate Mappe ohne...
von: Jens

Geschrieben am: 17.12.2006 16:33:11
Mit AddIns hatte ich noch gar nie was zu schaffen.
Hab mir jetzt diese Lösung zusammengeschustert:
Option Explicit
Sub Update()
With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents("mdlSchichten")
End With
Dim Moduldateiname As Variant
Dim Modulname As Variant
'dies ist das einzufügende Modul
Moduldateiname = "G:\Pfad\mdlSchichten.bas"
Modulname = "mdlSchichten"
With ActiveWorkbook.VBProject
.VBComponents.Import Moduldateiname
.VBComponents(ActiveWorkbook.VBProject.VBComponents.Count).Name = Modulname
End With
End Sub

Danke für die Anregungen, die zum Ziel führten ^^
Jens
Bild

Betrifft: Anm: Dim-Anweisgg gehören an den Anfang! owT
von: Luc:-?
Geschrieben am: 17.12.2006 17:10:52
:-?
 Bild