Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro an neues Workbook übergeben | Herbers Excel-Forum

Makro an neues Workbook übergeben
24.01.2010 23:11:11
Berndi

Hallo Gemeinde !
Ich stehe eben etwas auf dem Schlauch.
Ich erzeuge über ein AddOn eine neue Excel-Arbeitsmappe mit einem Arbeitsblatt.
Jetzt möchte ich auf dieser neuen Arbeitsmappe ein Makro ausführen, weiß aber nicht, wie ich das anstellen soll.
Die Makros im AddOn lassen sich nicht auf die neue Mappe portieren ...
Weis jemand Rat ?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Da sehe ich schwarz, denn aus einem...
25.01.2010 00:25:21
Luc:-?
...geschützten AddOn/AddIn lässt sich nichts portieren, Bernd!
Und das wäre auch nicht nötig, wenn die Makros des AddOns mit beliebigen Mappen arbeiten können, was normalerweise auch der Fall sein sollte. Wenn das nicht so ist, wurde das AddOn kurzsichtig pgmiert. Bei einem AddIn wäre das zwingend, denn es bleibt außerhalb des VBEditors unsichtbar.
Da wir nicht wissen, wie das so bei dir aussieht und wir auch den eigentlichen Grund des Portierens nicht kennen, wird wohl kaum einer mehr dazu sagen können...
Gruß Luc :-?
AW: Da sehe ich schwarz, denn aus einem...
26.01.2010 13:22:26
Berndi
Oh, wieso geschützt ..?
Ich habe selbst ein AddIn Programmier, das ein Kalenderblatt erstellt.
Jetzt möchte ich auf eben diesem Kalenderblatt ein Makro ausführen, mir fällt aber nicht ein, wie ich das machen soll ...
Ok, vielleicht habe ich mich mit der Angabe "VBA gut" im Sinne dieses Forums etwas überschätzt ...
... gegenüber Anderen stimmt es aber wieder (nur so nebenbei).
Helft Ihr mir trotzdem ?
LG,
Berndi
Anzeige
Naja, wenn es sich um ein AddIn handelt,...
26.01.2010 13:55:19
Luc:-?
...das du selbst pgmiert hast, Bernd —
sehr schön, aber warum ist das nicht geschützt, soll da jeder drin rumfummeln können? — dann ist das ja auch nicht zu sehen (außer im VBE), wenn du IsAddIn auf True gesetzt hast. Wenn du so etwas hast, warum willst du dann noch irgendwelche Makros auf das mit Routinen des AddIns erstellte Kalenderblatt portieren? Das ist doch nur sinnvoll für Ereignisprozeduren und die kann man vom AddIn aus in den Dokumentklassenmodulen, wo sie auch hingehören, des Kalenderblattes erzeugen. Des weiteren machen ggf noch kurze Aufrufprozeduren in Normalmodulen Sinn. Aus diesen heraus wdn dann Subroutinen (Makros) im AddIn aufgerufen, entweder mit Call oder mit Run. Da das AddIn, wenn es denn unter xl installiert wurde, immer mitgestartet wird, reicht Call, das auch ganz entfallen kann (nachlesen!). Solche Prozeduren automatisch ins Kalenderblatt zu bringen, ist kein Thema. Du erzeugst sie einfach mit einer Subroutine des AddIns gleichzeitig mit dem Kalenderblatt. Dazu musst du das VBProject des Kalenderblattes und seine Eigenschaften wie VBComponents(...) und CodeModule benutzen und die entsprechenden Befehle (für Ereignisprozz unbedingt CreateEventProc benutzen!), die dir dann angezeigt wdn, auswählen (einfach mal alles ausprobieren → learning by doing). Bspp findest du auch im Herber-Archiv (meist klappt das besser von außerhalb als mit der internen Suchmaschine!). Du musst aber auf jeden Fall im AddIn einen Verweis auf die MS VBA Extensibility 5.3 (Stddbezeichngg abgekürzt!) setzen, sonst klappt das weder, noch wird was vom vbIntellisense angezeigt.
Gruß Luc :-?
Anzeige
AW: Naja, wenn es sich um ein AddIn handelt,...
26.01.2010 14:01:55
Berndi

Dazu musst du das VBProject des Kalenderblattes und seine Eigenschaften wie VBComponents(...) und CodeModule benutzen und die entsprechenden Befehle (für Ereignisprozz unbedingt CreateEventProc benutzen!), die dir dann angezeigt wdn, auswählen.
Danke für die Info !
Kannst Du mir vielleicht obige Vorgehensweise etwas genauer Erklären ? *schäm*
Das wird etwas mühevoll,...
27.01.2010 13:05:39
Luc:-?
...Bernd,
weil mir das WLAN ausgefallen ist und ich die Bspp nicht auf diesem PC habe. Also etwas Geduld bitte! Allerdings befinden sich entsprechende Bspp im Herber-Archiv (Alle Recherchen)...
Gruß Luc :-?
Anzeige
So, habe jetzt mal ein Stück PgmCode...
27.01.2010 18:44:48
Luc:-?
...aus einem PgmGenerator, der genau solche Prozeduren erzeugt, als Beispiel (!) kopiert, damit du nicht soviel suchen musst. Die VBE-Hilfe solltest du aber trotzdem lesen!
With ActiveWorkbook
If bsx Then
With .VBProject.VBComponents(1).CodeModule
If .Find("Sub Workbook_Open", 1, 1, .CountOfLines, 1) Then
If .Find("Protect", .ProcStartLine("Workbook_Open", vbext_pk_Proc), _
1, .ProcCountLines("Workbook_Open", vbext_pk_Proc), 1) Then
For i = .ProcStartLine("Workbook_Open", vbext_pk_Proc) To _
.ProcStartLine("Workbook_Open", vbext_pk_Proc) + _
.ProcCountLines("Workbook_Open", vbext_pk_Proc) - 1
If InStr(.Lines(i, 1), "Protect") > 0 And (pw = "" Or _
InStr(LCase(.Lines(i, 1)), pw) = 0) Then
.ReplaceLine i, vbTab & "Rem ----- Line replaced by XXX " & _
Date & " -----" & vbLf & vbTab & "Me.Protect """ & pw & """"
Exit For
End If
Next i
Else
For i = .ProcStartLine("Workbook_Open", vbext_pk_Proc) To _
.ProcStartLine("Workbook_Open", vbext_pk_Proc) + _
.ProcCountLines("Workbook_Open", vbext_pk_Proc) - 1
If InStr(.Lines(i, 1), "Sub ") > 0 Then
.InsertLines i + 1, vbTab & "Rem ----- Line inserted by XXX " & _
Date & " -----" & vbLf & vbTab & "Me.Protect """ & pw & """"
Exit For
End If
Next i
End If
Else: .ReplaceLine .CreateEventProc("Open", "Workbook") + 1, vbTab & _
"Rem ----- Procedure generated by XXX " & Date & " -----" & _
vbLf & vbTab & "Me.Protect """ & pw & """"
End If
End With
End If
With .VBProject.VBComponents
.Add(vbext_ct_StdModule).Name = "xxModul"
Set c = .Item("xxModul")
With c.CodeModule
.InsertLines .CountOfLines + 1, _
"Rem ----- Module installed by XXX " & Date & _
" © CyWorXxl.FXss -----" & vbLf
End With
End With
End With
Die Textplatzhalter XXX und Namen wirst du ja sicher individuell festlegen wollen. Ist ja alles nur ein Vorschlag/Bsp.
Gruß Luc :-?
Anzeige
AW: Makro an neues Workbook übergeben
25.01.2010 08:50:11
Hajo_Zi
Hallo Bernd,
warum lassen sich die nicht importieren? Den Zugrif auf das VBA Projekt hat Du bestimmt zugelassen.
Ich gebe keine Auskunft wie das geht, bei Gut sollte man es wissen und darunter sollte man es nicht machen.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige