Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Button funktion zuweisen

Button funktion zuweisen
23.06.2005 09:41:43
Sebastian
Guten Morgen Experten,
ich habe eine für euch wahrscheinlich einfache Frage.
und zwar habe ich einen Button erstellt mit folgendem Code:
Set CMdButton = Worksheets("ZaBe").OLEObjects.Add _
(ClassType:="Forms.CommandButton.1", _
Left:=450, Top:=100, Width:=150, Height:=50).Object
CMdButton.Caption = "Programm starten"
Jetzt möchte ich diesem Button automatisch einen Befehl zuweisen und weiß nicht wie. Das heißt ohne auf den Button zu klicken und manuell den Befehl
"UF_Lieferantenbewertung.show" einzutragen.
Ich hoffe mir kann jemand helfen,
Grüße Sebastian
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button funktion zuweisen
23.06.2005 18:14:53
micha
Hallo Sebastian,
CMdButton.OnAction = "Function_Name"
Du kannst dem Button nur

Sub oder 

Function zuweisen.

Function STARTEN()
UF_Lieferantenbewertung.show
End Function

Micha
Anzeige
AW: Button funktion zuweisen
23.06.2005 18:20:53
Volker
Hallo Sebastian,
so geht's. Einziger Haken ist, das ich es nicht hinkriege, den Namen des erzeugten Buttons an eine Variable zu übergeben. Also habe ich "CommandButton1" geschrieben.
Sollte in der Tabelle schon ein Button existieren, hieße der neue Commandbutton2 und mein Befehl würde in die Hose gehen.

Sub CreateEvent()
Dim StartLine As Long
Set CMdButton = Worksheets("Tabelle1").OLEObjects.Add _
(ClassType:="Forms.CommandButton.1", _
Left:=450, Top:=100, Width:=150, Height:=50).Object
CMdButton.Caption = "Programm starten"
With ActiveWorkbook.VBProject. _
VBComponents("Tabelle1").CodeModule
StartLine = .CreateEventProc("Click", "CommandButton1") + 1
'StartLine = .CreateEventProc("Click", CMdButton.Name) + 1
.InsertLines StartLine, _
"Msgbox ""Hallo Welt"",vbOkOnly" & vbCrLf & _
"Cells(1, 1).Select"
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Button-Funktion in Excel zuweisen


Schritt-für-Schritt-Anleitung

  1. Button erstellen: Zuerst musst du einen Button in deinem Excel-Arbeitsblatt erstellen. Verwende dazu VBA, um einen CommandButton hinzuzufügen. Der folgende Code zeigt, wie du einen Button erstellst:

    Sub CreateButton()
        Dim CMdButton As OLEObject
        Set CMdButton = Worksheets("ZaBe").OLEObjects.Add( _
            ClassType:="Forms.CommandButton.1", _
            Left:=450, Top:=100, Width:=150, Height:=50)
        CMdButton.Object.Caption = "Programm starten"
    End Sub
  2. Funktion zuweisen: Um eine Funktion zuweisen zu können, verwende die OnAction-Eigenschaft des Buttons. Hier ist ein Beispiel, wie du eine Funktion zuweisen kannst:

    CMdButton.OnAction = "Function_Name"
  3. Funktion definieren: Definiere die Funktion, die beim Klicken des Buttons ausgeführt werden soll. Hier ein Beispiel:

    Sub Function_Name()
        UF_Lieferantenbewertung.Show
    End Sub

Häufige Fehler und Lösungen

  • Button funktioniert nicht: Überprüfe, ob der Button korrekt erstellt wurde und die OnAction-Eigenschaft richtig zugewiesen ist.
  • Funktion wird nicht aufgerufen: Stelle sicher, dass der Funktionsname in Anführungszeichen korrekt geschrieben ist.
  • Fehlermeldung beim Erstellen des Buttons: Vergewissere dich, dass der Name des Buttons eindeutig ist. Wenn bereits ein Button mit demselben Namen existiert, kann dies zu Konflikten führen.

Alternative Methoden

  • Excel ActiveX Button: Du kannst auch einen ActiveX-Button verwenden. Dieser wird ähnlich erstellt, hat jedoch zusätzliche Eigenschaften und Ereignisse. Verwende den folgenden Code:

    Dim ActiveXButton As OLEObject
    Set ActiveXButton = Worksheets("ZaBe").OLEObjects.Add( _
        ClassType:="Forms.CommandButton.1", _
        Left:=450, Top:=100, Width:=150, Height:=50)
  • HTML Button: Wenn du Excel mit HTML kombinieren möchtest, kannst du auch HTML-Buttons nutzen, um Funktionen aus Excel heraus zu steuern.


Praktische Beispiele

  1. +1 Button: Erstelle einen Button, der den Wert in einer Zelle um 1 erhöht.

    Sub IncrementValue()
        Cells(1, 1).Value = Cells(1, 1).Value + 1
    End Sub
  2. Button mit MsgBox: Zeige eine Nachricht an, wenn der Button geklickt wird.

    Sub ShowMessage()
        MsgBox "Hallo Welt"
    End Sub

Tipps für Profis

  • Nutze Dim-Anweisungen, um den Code übersichtlich zu halten.
  • Verwende With-Blöcke, um mehrere Eigenschaften eines Objekts auf einmal zu bearbeiten.
  • Halte deine Funktionsnamen klar und beschreibend, um die Wartbarkeit des Codes zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Funktionen einem Button zuweisen?
Du kannst nur eine Funktion über die OnAction-Eigenschaft zuweisen. Wenn du mehrere Aktionen durchführen möchtest, kannst du eine Hauptfunktion erstellen, die dann weitere Funktionen aufruft.

2. Welche Excel-Version benötige ich?
Die gezeigten Beispiele funktionieren in Excel ab der Version 2007, solange VBA unterstützt wird.

3. Was ist der Unterschied zwischen einem CommandButton und einem ActiveX Button?
CommandButtons sind einfacher und haben weniger Anpassungsmöglichkeiten, während ActiveX Buttons mehr Eigenschaften und Ereignisse bieten, die du nutzen kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige