habe 2 ziemlich große Codes und die sollen aber eigentlich beide beim Auslösen von ComandButton1 aktiviert werden.
Geht sowas?
Gruß Andreas
If sSF_Name = "SF_Versandbereit" Then Range("AR2") = "Offen"
'An dieser Stelle soll das Makro von CommandButton1 aktiviert werden
Call MakronameVomMakroAufCommandButton1
If sSF_Name = "SF_Versendet" Then sZielOrdner = "3.2 BL Versand\"
Viele Grüße,
Dim msg As String
Private Sub CommandButton1_Klick()
msg = "1. Mache dies"
Call Abarbeiten1
msg = msg & vbCr & "2. mache das"
Call Abarbeiten2
msg = msg & vbCr & "3. Mache_Schluss"
MsgBox msg
End Sub
Private Sub Abarbeiten1()
msg = msg & vbCr & "Abarbeiten1: Mache_jenes"
End Sub
Private Sub Abarbeiten2()
msg = msg & vbCr & "Abarbeiten2: Mache_was_anderes"
Call Abarbeiten1
End Sub
VG
'* Name der Schaltfläche
sSF_Name = ActiveSheet.Shapes(Application.Caller).Name
'* Sicherheitsabfrage
Beep
sFrage = MsgBox("Ist die """ & Mid(sSF_Name, 4, 25) & """ wirklich erledigt?", vbYesNo + vbQuestion, "?")
If sFrage = vbNo Then GoTo ende
'* damit wird eine namensgleich vorhandene Datei ohne Nachfrage überschrieben!
Application.DisplayAlerts = False
'* damit wird die geöffnete Datei im o. a. Pfad & neuem Namen gespeichert
ActiveWorkbook.SaveAs Filename:=sPfad & sFileName & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
'* Sheet "DB" entsperren
'Tab1_DB.Unprotect sKey
Call SchaltflaecheGrün
ende:
'* Sheet "DB" sperren
' If Environ("USERNAME") "1HG" Then Tab1_DB.Protect sKey
End Sub
Sub Status_erledigt()
Dim sZielPfadUndOrdner$, Wkb As Workbook, sQuellOrdner$
On Error GoTo ende
'* Name der Schaltfläche
sSF_Name = ActiveSheet.Shapes(Application.Caller).Name
'* Sicherheitsabfrage
sFrage = MsgBox("Ist die """ & Mid(sSF_Name, 4, 25) & """ wirklich erledigt?", vbYesNo + vbQuestion, "?")
If sFrage = vbNo Then GoTo ende
'* ZielOrdner bestimmen
If sSF_Name = "SF_Versandbereit" Then sZielOrdner = "2 Versandbereit\"
If sSF_Name = "SF_Versandbereit" Then Range("AR2") = "Offen"
An dieser Stelle soll das Makro von CommandButton1 aktiviert werden
If sSF_Name = "SF_Versendet" Then sZielOrdner = "3.2 BL Versand\"
If sSF_Name = "SF_Versendet" And [Cell_Empfaenger] = "US" Then sZielOrdner = "3.1 ISF\"
If sSF_Name = "SF_Versandt_US" Then sZielOrdner = "3.2 BL Versand\"
If sSF_Name = "SF_Versandt_US" Then Range("AR2") = "Erledigt"
An dieser Stelle soll das Makro von CommandButton1 aktiviert werden
If sSF_Name = "SF_Abgeschlossen" Then
With Sheets("A 1")
If .[L1] = "" Then
sZielOrdner = "4 Abgeschlossen\" & .[C8] & "_" & .[D3] & "_" & .[C7] & "\"
Else
sZielOrdner = "4 Abgeschlossen\" & .[C8] & "_" & .[D3] & "_" & .[C7] & "_" & .[L1] & "\"
End If
End With
End If
Um mehrere Makros mit einem Button auszuführen, kannst Du die folgenden Schritte befolgen:
Öffne den VBA-Editor:
Alt
+ F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.Erstelle ein neues Modul:
Einfügen
und dann auf Modul
.Füge Deine Makros ein:
Erstelle ein neues Hauptmakro:
Sub HauptMakro()
Call Makro1
Call Makro2
End Sub
Button erstellen:
Entwicklertools
→ Einfügen
→ Button (Formularsteuerung)
.Makro zuweisen:
Makro zuweisen
und wähle das HauptMakro
aus.Testen:
Fehler: "Unzuverlässige Verwendung einer Eigenschaft":
Fehler bei der Button-Zuweisung:
Du kannst auch die folgende Methode ausprobieren, um mehrere Makros mit einem Button auszuführen:
Sub MasterMakro()
Call Makro1
Call Makro2
' Weitere Makros hier hinzufügen
End Sub
Hier ist ein einfaches Beispiel, um zu zeigen, wie Du mehrere Makros mit einem Button ausführen kannst:
Sub Makro1()
MsgBox "Makro 1 wurde ausgeführt."
End Sub
Sub Makro2()
MsgBox "Makro 2 wurde ausgeführt."
End Sub
Sub HauptMakro()
Call Makro1
Call Makro2
End Sub
Wenn Du jetzt auf den Button klickst, wird zuerst das erste Makro und dann das zweite Makro ausgeführt.
Modularer Code: Halte Deinen Code modular, indem Du die Einzelmakros in verschiedenen Modulen organisierst. So bleibt Dein Code übersichtlich und leicht wartbar.
Fehlerbehandlung: Implementiere On Error GoTo
-Anweisungen in Deinen Makros, um Fehler elegant zu behandeln und die Ausführung nicht abrupt zu stoppen.
Namen für Makros: Achte darauf, eindeutige und aussagekräftige Namen für Deine Makros zu verwenden, um Verwirrung zu vermeiden.
1. Kann ich mehrere Makros mit einem einzigen Button in Excel ausführen?
Ja, Du kannst mehrere Makros mit einem Button ausführen, indem Du ein Hauptmakro erstellst, das die anderen Makros nacheinander aufruft.
2. Wie lege ich ein Makro auf einen Button?
Um ein Excel-Makro auf einen Button zu legen, klicke mit der rechten Maustaste auf den Button, wähle Makro zuweisen
und wähle das entsprechende Makro aus der Liste aus.
3. Was mache ich, wenn mein Makro nicht funktioniert?
Überprüfe den Code auf Fehler, stelle sicher, dass alle verwendeten Variablen korrekt deklariert sind und teste die einzelnen Makros separat, um den Fehler einzugrenzen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen