Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
208to212
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
208to212
208to212
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Parameter bei Makroaufruf über Menü übergeben

Parameter bei Makroaufruf über Menü übergeben
28.01.2003 18:40:25
Tobias
Hallo
Wie kann man bei einem selbsterstellten Menü ein Makro mit Parameter starten?

Bsp:
Set objBtn = Application.CommandBars("Test").Controls("Fenster").Controls.Add(Type:=msoControlButton, Before:=0, Temporary:=True)

wb = Workbooks(i).Name

With objBtn
.Caption = wb
.OnAction = "FensterAktivieren" PARAMETER ÜBERGEBEN ??
End With
----------
Sub FensterAktivieren(wb As Workbook)
wb.Activate
End Sub



12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 19:06:40
Nepumuk

Hallo Tobias,
wo sollen denn die Parameter herkommen, die du übergeben willst?
Gruß
Nepumuk

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 19:09:18
Tobias

Es soll immer der Name des Fensters sein, das aktiviert weden soll --> also "wb"

Tobias

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 19:23:57
Nepumuk

Hallo Tobias,
Programme können vieles, aber keine Gedanken lesen. Woher soll es nun wissen, welche Tabelle du gerade auswählen willst?
Gruß
Nepumuk

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 19:34:51
Tobias

gut, dann etwas ausführlicher ...


For i = 1 To Workbooks.count
If Workbooks(i).Name <> ThisWorkbook.Name Then

On Error Resume Next
Application.CommandBars("test").Controls("geöffnete Fenster").Controls(Workbooks(i).Name).Delete
Err.Clear
Set objBtn = Application.CommandBars("Test").Controls("geöffnete Fenster").Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
If Err <> 0 Then
Err.Clear
Set objBtn = Application.CommandBars("Test").Controls("geöffnete Fenster").Controls.Add(Type:=msoControlButton, Before:=0, Temporary:=True)
End If

wb = Workbooks(i).Name
With objBtn
.Caption = wb
.OnAction = "FensterAktivieren" ?FENSTERNAMEN ÜBERGEBEN? (in FensterAktivieren Prozedur)
.BeginGroup = False
.Style = msoButtonIconAndCaption
.FaceId = 65
End With
End If
Next


Im Menü werden alle geöffneten Fenster angezeigt.
Nun soll halt wenn man draufklickt das entsprechende Fenster aktiviert werden.
Man muss jedem Menüpunkt ein Makro zuordnen. Deswegen dachte ich, dass es möglich sein muss, eine Prozedur zu schreiben an die der Fenstername übergeben wird, die dann das richtige Fenster aktiviert.

Tobias

Anzeige
Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 20:35:03
wolf.w.radzinski

Hallo Tobias

OnAction mit VARIABLER PARAMETERÜBERGABE, das geht! lang lang ist's her und ich hab es damals auch nur mit fremder Hilfe geschafft. Wenn ich die Codestellen in meinem Addin Sprungmarken.xla wiederfinde (und du sowas noch suchst) werd ich sie dir zukommen lassen (hier im Forum oder PM)

Gruß -wr-

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 20:44:47
wolf.w.radzinski

siehe z.B. http://www.rendar.de und dort unter >> sub's(14)

so sieht bei mir ein Makroaufruf mit variabler Parameterübergabe aus

.OnAction = ThisWorkbook.Name & "!'Springe """ & Selection.Address(ReferenceStyle:=xlR1C1, external:=True) & """'"

und hier die erste Zeile des per Commandbutton aufgerufenen Makros

Sub Springe(i)

was bei Dir nach dem Makronamen in der OnActionzeile zwischen die Hochkommaorgie muß, das wird wohl der schwierigste Teil werden.

Aber ich denke dein Problem sollte wie gewünscht lösbar sein?!
(hoffentlich, das Beispiel wurde unter XL97 entwickelt!)

Gruß -wr-

Anzeige
Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 20:58:18
wolf.w.radzinski

Hallo,
ich hab mal die betreffende Progammzeile "auseinandergezogen" und je ein Elemente pro Zeile hingeschrieben, damit sollte ein STRING wb (der den Workbooknamen enthält) an dein Makro Fensteraktivieren übergeben werden (hoffentlich)

Gruß -wr-

.OnAction =
ThisWorkbook.Name

&

"
!
'
FensterAktivieren
"
"
"

&

wb

&

"
"
"
'
"


Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 21:08:36
Tobias

1. Danke für deine Mühe
2. nochmal Danke

Ich bin schon dabei das Problem zu lösen, noch klappt es allerdings nicht...


Anzeige
Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 21:12:05
wolf.w.radzinski

du hast in den hier geposteten Beispielen einmal wb als STRING (=Workbookname) definiert und beim Funktionsaufruf als OBJEKT (=Workbook) ... sollte es etwa daran liegen, daß es noch nicht klappt?

Gruß -wr-

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 21:21:40
Tobias

Nein, das habe ich schon korrigiert.
Irgendwie fehlen doch die Klammern um den Parameter zu übergeben, denn so sucht er ja eine Prozedur die

FensterAktivieren"test.xls" heißt und die gibt es ja nicht.

Allerdings geht es auch nicht wenn ich die Klammer mit eingebe.

Gruß
Tobias

Re: Parameter bei Makroaufruf über Menü übergeben
28.01.2003 21:47:24
wolf.w.radzinski

hinter FensterAktivieren MUSS eine LEERSTELLE im OnAction Aufruf stehen! vor den drei """ (imho) der Aufruf erfolgt dann mit

FensterAktivieren[space]"test.xls"




Anzeige
IT WORKS ;)
28.01.2003 22:22:09
Tobias

Schankedön

MfG

Tobias


300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige