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

Forumthread: Command Button per VBA einfügen

Command Button per VBA einfügen
14.03.2017 14:58:37
Markus
Hallo zusammen,
ich möchte in ein Excel Sheet über ein Command Button (Button einfügen) und einem Makro ein Command Button einfügen und diesen automatisch umbenennen lassen und zwar mit dem Wert der in der Tabelle 2 steht und zwar von unten nach oben gesehen der erste Wert.
In meinem Beispiel also "Mathias"
Momentan wird ja er ja mit "Testbutton" benannt, wie muss ich den Code umschreiben, damit dort der Wert wie oben beschrieben steht?
https://www.herber.de/bbs/user/112177.xlsm
Ich habe folgenden Code:
Sub Button_einfügen()
Dim FormularControl As Object, Z As Long, W#, H#, L#, T#
W = 72: H = 21: L = 1: T = 1
'For Z = 1 To 5
Set FormularControl = ActiveSheet.Buttons.Add(1166.25, 294.75, 73.5, 24.75)
With FormularControl
.Name = "F_Control " & Z
.Characters.Text = "Testbutton"
.Enabled = True
.LockedText = False
.OnAction = "Datensatz_suchen"
.Placement = xlFreeFloating
.PrintObject = False
With .Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 10
.ColorIndex = 5
.Strikethrough = False
.Superscript = False
.Subscript = False
.Underline = xlUnderlineStyleNone
End With
End With
L = L + W
'Next
Set FormularControl = Nothing
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Command Button per VBA einfügen
14.03.2017 15:59:33
Michael
Hallo!
Speichere den entsprechenden Wert in einer Variablen, und weise diese als Text dem Button zu:
Dim BtnName As String
With ThisWorkbook.Worksheets("Tabelle2")
BtnName = .Cells(.Rows.Count, 1).End(xlUp)
End With
.Characters.Text = BtnName
'...
LG
Michael
Anzeige
AW: Command Button per VBA einfügen
15.03.2017 07:05:00
Markus
Hallo Michael,
vielen Dank erstmal für Deine schnelle Antwort.
Aber entweder mache ich etwas falsch oder verstehe nicht ganz wie Du das meinst.
Ich habe den Code erweitert wie Du geschildert hast aber dann bekomme ich beim ausführen die Fehlermeldung: "Fehler beim Kompilieren: Unzulässiger oder nicht ausreichender definierter Verweis"
und das bei .Characters.text
VG
Markus
Anzeige
AW: Command Button per VBA einfügen
15.03.2017 08:59:53
Michael
Hallo
Aber entweder mache ich etwas falsch oder verstehe nicht ganz wie Du das meinst.
Vermutlich.
Nachfolgend Dein ursprünglicher Code, mit meiner Ergänzung (fett), bezogen auf Deine ursprüngliche Fragestellung:
Sub Button_einfügen()
Dim FormularControl As Object, Z&, W#, H#, L#, T#
Dim BtnName$
With ThisWorkbook.Worksheets("Tabelle2")
BtnName = .Cells(.Rows.Count, 1).End(xlUp)
End With
W = 72: H = 21: L = 1: T = 1
'For Z = 1 To 5
Set FormularControl = ActiveSheet.Buttons.Add(1166.25, 294.75, 73.5, 24.75)
With FormularControl
.Name = "F_Control " & Z
.Characters.Text = BtnName
.Enabled = True
.LockedText = False
.OnAction = "Datensatz_suchen"
.Placement = xlFreeFloating
.PrintObject = False
With .Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 10
.ColorIndex = 5
.Strikethrough = False
.Superscript = False
.Subscript = False
.Underline = xlUnderlineStyleNone
End With
End With
L = L + W
'Next
Set FormularControl = Nothing
End Sub
Basierend auf Deiner Bsp-Datei erstellt Dir der o.a. Code eine neue Schaltfläche im aktiven Blatt, zB in Tabelle1 - die Beschriftung dieser Schaltfläche lautet auf "Mathias"; das ist, Deinem Wunsch gemäß, der Zellwert der letzten beschriebenen Zelle in A:A in Tabelle2...
Command Button einfügen und diesen automatisch umbenennen lassen und zwar mit dem Wert der in der Tabelle 2 steht und zwar von unten nach oben gesehen der erste Wert.
In meinem Beispiel also "Mathias"

Wenn Du etwas anderes suchst, solltest Du auch eine andere Frage stellen.
LG
Michael
Anzeige
AW: Command Button per VBA einfügen
15.03.2017 11:28:59
Markus
Hallo Michael,
ich habe es noch einmal probiert und es klappt!
Vielen herzlichen Dank noch einmal für Deine Hilfe!
VG
Markus
Na super! lg und owT
15.03.2017 12:38:55
Michael
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Command Button in Excel per VBA einfügen


Schritt-für-Schritt-Anleitung

Um einen Command Button in Excel per VBA einzufügen und diesen automatisch zu benennen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub Button_einfügen()
       Dim FormularControl As Object
       Dim BtnName As String
       Dim W As Long, H As Long
    
       W = 72: H = 21
    
       ' Speichere den Wert aus Tabelle2
       With ThisWorkbook.Worksheets("Tabelle2")
           BtnName = .Cells(.Rows.Count, 1).End(xlUp).Value
       End With
    
       ' Füge den Button ein
       Set FormularControl = ActiveSheet.Buttons.Add(1166.25, 294.75, W, H)
       With FormularControl
           .Name = "F_Control"
           .Characters.Text = BtnName
           .Enabled = True
           .OnAction = "Datensatz_suchen"
           .Placement = xlFreeFloating
           .PrintObject = False
       End With
    
       Set FormularControl = Nothing
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke Alt + F8, wähle Button_einfügen und klicke auf Ausführen.

Der Button wird nun in deinem aktiven Excel-Blatt eingefügt und trägt den Namen des letzten Wertes in Spalte A von Tabelle2.


Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Wenn du die Fehlermeldung „Unzulässiger oder nicht ausreichender definierter Verweis“ erhältst, überprüfe, ob alle Variablen korrekt deklariert sind, insbesondere .Characters.Text.

  • Button wird nicht angezeigt: Stelle sicher, dass du den Button im aktiven Arbeitsblatt einfügst. Der Befehl ActiveSheet.Buttons.Add sorgt dafür, dass der Button dort platziert wird.


Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch einen Button über die Entwicklertools einfügen:

  1. Gehe zu den Entwicklertools:

    • Aktiviere die Entwicklertools über Datei > Optionen > Menüband anpassen.
  2. Füge einen Button ein:

    • Wähle Einfügen > Schaltfläche (Formularsteuerung) und ziehe den Button auf dein Arbeitsblatt.
  3. Verknüpfe den Button mit einem Makro:

    • Wähle das gewünschte Makro aus, das beim Klicken des Buttons ausgeführt werden soll.

Praktische Beispiele

  • Beispiel 1: Du möchtest mehrere Buttons erstellen, die jeweils unterschiedliche Werte aus Tabelle2 anzeigen. Modifiziere den Code, um eine Schleife zu verwenden, die mehrere Buttons hinzufügt.

  • Beispiel 2: Wenn du einen Button mit einer spezifischen Funktionalität verknüpfen möchtest, kannst du die OnAction-Eigenschaft des Buttons anpassen, um auf verschiedene Makros zu verweisen.


Tipps für Profis

  • Verwende die With-Anweisung, um den Code zu optimieren und die Lesbarkeit zu erhöhen, besonders wenn du viele Eigenschaften eines Objekts einstellen musst.

  • Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben stabil bleibt.

  • Betrachte das Design des Buttons. Du kannst die Schriftart, -größe und -farbe anpassen, um ihn visuell ansprechender zu gestalten.


FAQ: Häufige Fragen

1. Wie kann ich einen Button ohne Makro einfügen? Du kannst einen Button einfach über die Entwicklertools einfügen, ohne VBA zu verwenden. Wähle Einfügen und dann Schaltfläche (Formularsteuerung).

2. Wie kann ich den Button verschieben? Du kannst den Button im Excel-Arbeitsblatt einfach anklicken und ziehen, um seine Position zu ändern.

3. Was ist der Unterschied zwischen einer Schaltfläche und einem Command Button? Eine Schaltfläche ist eine allgemeine Bezeichnung für ein Steuerelement, während ein Command Button spezifisch für VBA-Programmierungen in Excel verwendet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige