Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Commandbutton per Makro aktivieren

Commandbutton per Makro aktivieren
01.10.2004 07:10:21
Erich
Hallo EXCEL-Freunde,
ich habe in einer Tabelle einen CommandButton1.
Das Makro kann mit CommandButton1_Click gestartet werden und läuft.
Wie kann ich dieses Makro per Makro aktivieren?
In der Recherche bin ich auf
Commandbutton1.SetFocus
gestossen - das reicht aber nicht?
Alternativ könnte ich evtl. einen CB in einer UF als Start verwenden.
Besten Dank für eine Hilfe!
mfg
Erich
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Commandbutton per Makro aktivieren
KlausK
Moin Erich,
ein Makro kannst Du aus einem anderen Makro mit call aufrufen. Siehe auch Sevices - Recherche und dann den Suchbegriff CALL eingeben.
Gruss
KlausK
AW: Commandbutton per Makro aktivieren
Erich
Hallo KlausK,
Danke.
Das aufrufen mit Call wäre nicht das Problem.
Hier habe ich das Problem, dass ich in der Tabelle1 einen CommandButton1 habe
und der dort hinterlegte Code sich mit Call nicht ausführen lässt.
Wenn ich aber den CommandButton clicke, läuft der Code.
Jetzt suche ich die Lösung,
1. Tabelle1 aktivieren (kein Problem)
2. CB1 per Makro "anklicken" (ungelöst) ?
Noch eine Idee?
Habs mittlerweile auch mit ActiveSheet.Shapes("CommandButton1").Select (bzw. alternativ Activate) probiert - ohne Erfolg!
Danke!
mfg
Erich
Anzeige
AW: Commandbutton per Makro aktivieren
WernerB.
Hallo Erich,
schreibe Dein auszuführendes Makro nicht in ein Tabellenblatt-Modul, sondern in ein normales Standard-Modul. Das CB-Makro im Tabellenblatt-Modul sollte nur diese eine Zeile beinhalten:
Call MeinMakro
So kannst Du dieses Makro sowohl über Deinen CB (CommandButton), als auch auf anderen Wegen aufrufen.
Gruß
WernerB.
Anzeige
AW: Commandbutton per Makro aktivieren
Erich
Hallo Werner,
das ist genau mein Problem:
Der Code steht im Standardmodul.
Der CB1 hat nur den Aufruf den Code zu starten.
Nun funktioniert der Start des Codes "aufrufen" nur über den CB1 - nicht über
den Start (Call) aus einem Makro heraus?
Hier die Codes:
Option Explicit
Private Sub Workbook_Open()
UserForm1.Show
aufrufen
End Sub
Sub aufrufen()
Dim FreischaltCode As String
Application.ScreenUpdating = True
FreischaltCode = "g" ' = Passwort
SendKeys ("%{F11}"), True
If Application.VBE.ActiveVBProject.Protection Then
SendKeys ("%xi" & FreischaltCode & "{ENTER}{ENTER}"), True '' für XLS2000 und XP
' SendKeys ("%xs" & FreischaltCode & "{ENTER}{ENTER}"), True ''für XLS97
End If
Application.ScreenUpdating = False
End Sub
Private Sub UserForm_Activate()
Dim sngTime As Single
sngTime = Timer + 1
Do
DoEvents
Loop Until sngTime <= Timer
Unload Me
End Sub
'' in Tabelle1
Private Sub CommandButton1_Click()
aufrufen
End Sub

Bei Workbook_Open kommt Fehlermeldung.
Wenn ich aber über CB1 starte läuft der Code und das VBA-Projekt wird trotz Schutz
geöffnet!!
Noch eine Idee?
Besten Dank!
mfg
Erich
Anzeige
noch offen
01.10.2004 16:52:40
Erich
Niemand mehr eine Idee?
Danke!
AW: Commandbutton per Makro aktivieren
Marcel
Userbild
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

CommandButton per Makro aktivieren in Excel


Schritt-für-Schritt-Anleitung

Um einen CommandButton in Excel per Makro zu aktivieren, befolge diese Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11.

  2. Füge einen CommandButton hinzu: Gehe zu "Einfügen" > "UserForm" und ziehe einen CommandButton auf die Form.

  3. Makro erstellen: Schreibe ein Makro im Standardmodul, das den Code des CommandButtons aufruft. Beispiel:

    Sub MeinMakro()
        ' Dein Code hier
        MsgBox "Das Makro wurde gestartet!"
    End Sub
  4. CommandButton klicken: Im Code des CommandButtons fügst Du den Aufruf hinzu:

    Private Sub CommandButton1_Click()
        Call MeinMakro
    End Sub
  5. Makro aktivieren: Um das Makro über einen anderen Befehl auszuführen, kannst Du den Befehl Call nutzen.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt: Stelle sicher, dass das Makro im richtigen Modul ist. Verwende Standardmodule für allgemeine Makros.

  • Lösung: Call-Anweisung: Wenn Du Call MeinMakro verwendest, muss das Makro im gleichen oder einem erreichbaren Modul sein.

  • Fehler: SendKeys funktioniert nicht: Bei Verwendung von SendKeys kann es zu Problemen kommen, wenn das VBA-Projekt geschützt ist. Überprüfe die Schutzoptionen.


Alternative Methoden

  • Direktes Aufrufen des Makros: Anstelle von CommandButton1.Click kannst Du das Makro direkt mit seinem Namen aufrufen, z.B. MeinMakro aus einem anderen Makro heraus.

  • UserForms verwenden: Du kannst auch UserForms einsetzen, um mehrere CommandButtons zu verwalten und die Logik zu zentralisieren.


Praktische Beispiele

Hier ist ein Beispiel für die Verwendung eines CommandButtons in einem UserForm:

Private Sub CommandButton1_Click()
    Call MeinMakro
End Sub

Sub MeinMakro()
    MsgBox "Das Makro wurde erfolgreich ausgelöst!"
End Sub

In diesem Beispiel wird beim Klicken auf CommandButton1 das Makro MeinMakro aufgerufen, das eine Nachricht anzeigt.


Tipps für Profis

  • Fehlerbehebung: Nutze Debug.Print innerhalb Deines Codes, um den Status und Werte zu überprüfen.

  • Optimierung: Halte Deine Makros modular. Teile komplexe Funktionen in kleinere, übersichtliche Teile.

  • Sicherheit: Denke daran, beim Arbeiten mit SendKeys vorsichtig zu sein, da es nicht immer zuverlässig ist. Überlege, ob es notwendig ist, Makros in Word zu aktivieren, um mit Excel zu interagieren.


FAQ: Häufige Fragen

1. Wie kann ich einen CommandButton in einem anderen Modul aufrufen?
Du kannst das Makro einfach mit der Call-Anweisung aus einem anderen Modul heraus aufrufen, solange es öffentlich ist.

2. Warum funktioniert SendKeys nicht wie erwartet?
SendKeys kann unzuverlässig sein, besonders wenn das Zielprogramm im Hintergrund läuft. Überprüfe, ob das Excel-Fenster aktiv ist, wenn Du die Tasten sendest.

3. Kann ich mehrere CommandButtons in einem UserForm verwenden?
Ja, Du kannst beliebig viele CommandButtons in einem UserForm hinzufügen und jeden mit unterschiedlichen Makros verknüpfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige