Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wie mehrere übergabeparameter per button ?

wie mehrere übergabeparameter per button ?
29.07.2005 14:04:16
LT
Hi Leute,
Ramses war so nett mir mit ein bischen Code auszuhelfen.
Es geht darum, daß ich per Click auf einen dynamisch erstellten Button eine Aktion auslösen möchte.
Problem hierbei: es soll nicht nur die Aktion auslösen, sondern auch gleich einige Werte mitgeben (4 Übergabeparameter) um genau zu sein.
Wie müsste ich diesen Code anpassen, damit das funktioniert ? :
Option Explicit

Sub test()
'Aufruf wo der Button hin soll
AddButton Range("E4")
End Sub


Sub AddButton(TarRange As Range)
'Zelle auswählen wo d
ActiveSheet.Buttons.Add(0, 0, 0, 0).Select
With Selection
.Top = TarRange.Top
.Left = TarRange.Left
.Height = TarRange.Height
.Width = TarRange.Width
.Text = ActiveSheet.Shapes.Count
'Diese Procedure wird ausgelöst
.OnAction = "TestProcedure"
End With
End Sub


Sub TestProcedure()
MsgBox "Ausgelöst von " & Application.Caller
End Sub

=> ein dynamisch generierter Button, der mir beim draufklicken sagt wie er heißt... ...für den Anfang schon mal nicht schlecht.
Aber er soll nicht nur seinen namen verraten, sondern ich möchte ihm auch mehrere parameter mitgeben...
...Mein erster Gedanke war daher...
.OnAction = "TestProcedure("A","B","C","D")
(und die Testprocedure entsprechend zu erweitern)...
...aber das klappt (zumindest bei mir) leider nicht.
wie stellt man sowas geschickterweise an ? Habt Ihr Tips für mich ?
(ganz wichtig ist, daß die Buttons zur Laufzeit dynamisch angelegt werden müssen...)
Danke im Voraus,
LT

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

Betreff
Datum
Anwender
Anzeige
AW: wie mehrere übergabeparameter per button ?
29.07.2005 14:38:10
ANdreas
Hallo,
anbei mal ein einfaches Beispiel, dass den Namen des Buttons umbenennt:

Sub AddButton(TarRange As Range)
'Zelle auswählen wo d
ActiveSheet.Buttons.Add(0, 0, 0, 0).Select
With Selection
.Top = TarRange.Top
.Left = TarRange.Left
.Height = TarRange.Height
.Width = TarRange.Width
.Text = ActiveSheet.Shapes.Count
'3 einstellige Werte merken
.Name = .Name & "_A_B_C"
'Diese Procedure wird ausgelöst
.OnAction = "TestProcedure"
End With
End Sub


Sub TestProcedure()
Dim s$, sWert1$, sWert2$, sWert3$, i%
Select Case TypeName(Application.Caller)
Case "String"
s = Application.Caller
i = Len(s)
'3 einstellige Werte auslesen
sWert3 = Right(s, 1)
sWert2 = Mid(s, i - 2, 1)
sWert1 = Mid(s, i - 4, 1)
MsgBox "Ausgelöst von " & Left(s, i - 6) & vbCrLf & sWert1 & vbCrLf & _
sWert2 & vbCrLf & sWert3
End Select
End Sub

Hoffe das hilft weiter. Natürlich sind auch Parameter mit dynamischer Textlänge möglich, man müsste dazu dann einfach die "_" auslesen.
Gruß
Andreas
Anzeige
AW: wie mehrere übergabeparameter per button ?
29.07.2005 14:39:27
Henrik
Du musst der Testprocedure auch noch die Parameter geben, andernfalls weiß ja keiner der Subs, was gemeint ist - sieh mal in der Hilfe nach Subs/Functions
Henrik
(AS)
(Honduras)
AW: wie mehrere übergabeparameter per button ?
29.07.2005 19:21:06
Ramses
Hallo
dein erster Gedanke war doch nicht schlecht
.OnAction = "TestProcedure(""A"",""B"",1,2)"
Sub TestProcedure(X1 as String, X2 as String, X3 as Integer, X4 as Integer)
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige