Makro mit Variable ansprechen

Hallo Zusammen
Mal vorne Weg, ich arbeite mit Office 2007.

Ein kleines Problem, bei dem ich nicht weiterkomme.

Ich möchte in meinem UserForm mehrere Makros die sich nur durch eine Zahl unterscheiden, nacheinander aufrufen.

Bsp.

call Makro1
call Makro2
call Makro3

Nun möchte ich das ganze von einem iterator abhängig machen.

Bsp.

For i = 1 To 3

call Makro & i

Next i

Geht das irgendwie? Ich habe schon mit String, Me(), etc. versucht, bin aber nicht weitergekommen.

Danke für die Hilfe!!

Jochen

Ich möchte in meinem UserForm mehrere Makros die sich nur
durch eine Zahl unterscheiden, nacheinander aufrufen.
Nun möchte ich das ganze von einem iterator abhängig machen.
Geht das irgendwie? Ich habe schon mit String, Me(), etc.
versucht, bin aber nicht weitergekommen.

Hallo Jochen,

ich sage mal nein, das geht nicht. Aber ich bin nicht Alleswisser.
So geht das wenn es dir so passt:

sub tt() 
For i = 1 To 3
 call Makro(i)
Next i
end sub

sub Makro( byval i as integer)
select case i
 case 1
 'code 1
 case 2
 'code 2
 case 3
 'code 3
 case else
 'code else
end select
end sub

Gruß
Reinhard

Grüezi Jochen

Wenn Du deine Makros mit Application.Run aufrufst, kannst Du das wie folgt tun:

Sub tr\_CallMakro()
Dim intI As Integer
 For intI = 1 To 3
 Application.Run "tr\_Makro" & intI
 Next intI
End Sub

Public Sub tr\_Makro1()
 MsgBox "tr\_Makro1"
End Sub

Public Sub tr\_Makro2()
 MsgBox "tr\_Makro2"
End Sub

Public Sub tr\_Makro3()
 MsgBox "tr\_Makro3"
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hammermässig!!!

Danke für die Hilfe. Klappt super.

Jochen

Kleiner Hinweis für solche, die diesen Beitrag lesen:

Das ganze klappt nur mit normalen Makros.

Wenn ihr eine spezifische Funktion eines Objekts (z.B. ComboBox) in eurer UserForm ansprechen wollt, geht das nicht!!

Bsp.
For i = 1 to 3

Application.Run „ComboBox“ & i & „_Change“

Next i

Geht nicht!!