Makro benutzerdefeniert starten

Ich habe folgendes Problem:
Ich habe ein Button, mit dem ich ein Makro ausführe.
Jetzt soll dieser Button aber nicht immer das selbe Makro starten, sondern Benutzerdefeniert.
ZB:
Wenn in Zelle A1 der Wert 1 steht soll das Makro EINS ausgeführt werden. Wenn in Zelle A1 der Wert 2 steht, soll das Makro zwei ausgeführt werden, und so weiter.

Ich hoffe, das mir da jemand weiterhelfen kann.
Und ich bedanke mich bei allen, die mir heute schon geholfen haben.

Hi Hanni,

ZB:
Wenn in Zelle A1 der Wert 1 steht soll das Makro EINS
ausgeführt werden. Wenn in Zelle A1 der Wert 2 steht, soll das
Makro zwei ausgeführt werden, und so weiter.

Ich hoffe, das mir da jemand weiterhelfen kann.
Und ich bedanke mich bei allen, die mir heute schon geholfen
haben.

versuche es doch mit einem Startmakro, das andere je nach Zelleninhalt aufruft.

Sub Startmakro()
 If Cells(1,1).Value = 1 Then
 Makro1
 Exit Sub
 Else 
 Makro2
 End If
End Sub

Sub Makro1()
 ' Dein Code
End Sub

Sub Makro2()
 ' Dein alternativer Code
End Sub

Ciao

Uwe

Zuerst einmal ein recht herzliches Danke.
Du hast mir schon sehr geholfen.
Jetzt habe ich nur mehr ein kleines Problem:

Ich habe das Makro ein wenig umgeschrieben, da ich mehrere makro zum starten habe.
Es funktioniert zwar, aber das Programm startet mir nur jeweils das erste Makro. Ich glaube, das es daran hängt, das ein jedes Makro beendet wird. Aber wie kann ich es machen, das wenn zb. das Makro KrisamAnton ausgeführt wird, auch das nächste ausgeführt wird???
(In Basic hatte ich immer goto, aber ich habe keine Ahnung, wie und ob es in VBA auch soetwas gibt.

Ich hoffe, das du mir nochmal helfen kannst.

DANKE nochmal
Sub Startmakro()

If Cells(13, 7).Value = 1 Then
KrisamAnton
End If

If Cells(14, 7).Value = 1 Then
KrisamRene
End If

If Cells(15, 7).Value = 1 Then
EhrenreichRobert
End If

If Cells(16, 7).Value = 1 Then
EhrenreichErwin
End If

If Cells(17, 7).Value = 1 Then
Josko
End If

If Cells(18, 7).Value = 1 Then
lehr
End If

If Cells(19, 7).Value = 1 Then
lehr1
End If

If Cells(20, 7).Value = 1 Then
lehr2
End If

If Cells(21, 7).Value = 1 Then
lehr3
End If

Exit Sub

End Sub

und dies soll ein gestartetes Makro sein:
Sub Josko()

’ Josko Makro
’ Makro am 08.02.02 von Krisam Anton geschrieben


Sheets(„Josko“).Select
Rows(„11:11“).Select
Selection.Insert Shift:=xlDown
Sheets(„Tabelle3“).Select
Range(„B3:H3“).Select
Selection.Copy
Sheets(„Josko“).Select
Range(„B11“).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

vieleicht kann mir wer helfen

Hi Hanni,

ein ‚goto‘ gibt es natürlich auch. Zwar nicht mehr mit Zeilennummern :wink: , aber auf Labels. Ein Label wird mit einem abschließendenden Doppelpunkt gesetzt. Gotos sind natürlich schlechter Stil.

Ein Label sieht also so aus:

Sprungmarke22:

und der entsprechende ‚Goto‘-Befehl

Goto Sprungmarke22

Auf die Analyse Deines Codes habe ich heute abend keine Lust mehr.

Ciao

Uwe