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

Forumthread: Command Button erstellen

Command Button erstellen
23.10.2008 13:26:00
Jana
Hallo liebes Forum!
Ich habe mal wieder ein Anliegen...
Dank eurer Hilfe starte ich aus einer bestehenden Excel-Datei heraus eine neue Exceldatei.
1. Für diese neue Datei möchte ich einen Button auf dem Blatt "Tabelle1" erstellen.
2. Hinter dem erstellten Button ein Makro extern via VBA hinterlegen.
Da fängt das Problem an..
Ich habe folgenden funktionsfähigen Code gefunden
Sub AddButton()
Dim tarCell As Range
Set tarCell = Range("A10")
'wohin soll der Button
ActiveSheet.Buttons.Add(0, 0, 0, 0).Select
With Selection
'Eintragung der Bezugszelle
.Top = tarCell.Top
.Left = tarCell.Left
.Height = tarCell.Height
.Width = tarCell.Width
.Text = "Neuer Button"
'Diese Procedure wird ausgelöst
.OnAction = "DeinMakroName"
End With
nur leider geht er nur, wenn ich in der gleichen Datei bleibe...
oder ich spreche ihn falsch an -- Problem: erkennt Buttons.Add nicht. Meine umgebaute Version sieht folgend aus:
WB.Sheets("Tabelle1").Name = "Tab1"
WB.Sheets("Tabelle2").Name = "Tab2"
WB.Sheets("Tabelle3").Name = "Tab3"
WB.Sheets("Tabelle4").Name = "Tab4"
Dim tarCell As Range
Set tarCell = Range("E1")
WB.Sheets("Tab1").Select
WB.Sheets.Buttons.Add(0, 0, 0, 0).Select
With Selection
.Top = tarCell.Top
.Left = tarCell.Left
.Height = tarCell.Height
.Width = tarCell.Width
.Text = "Speichern Button"
'Diese Procedure wird ausgelöst
.OnAction = "DeinMakroName"
End With
Frage 2: kann man hinter diesen Button in irgend einer Form noch ein Makro / Hinweis hinterlegen, so dass er ein bestimmtes Makro anspricht?Meinetwegen auch aus der ursprünglichen Datei, aus der diese neue Datei mit Button erstellt wird. Ich habe da mal was von einem AddIn-speichern gehört.
Vielen Dank einem Jeden im Voraus
Jana
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Command Button erstellen
23.10.2008 13:58:32
Beverly
Hi Jana,
versuche es mal auf diesem Weg:

Sub button_mit_code_erstellen()
Dim inZeile As Integer
Dim wbMappe As Workbook
Dim oobButton As OLEObject
Application.DisplayAlerts = False
Set wbMappe = Workbooks.Add
With wbMappe.Worksheets(1)
Set oobButton = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=.Range("D10").Left, Top:=.Range("D10").Top, Width:= _
117, Height _
:=30)
With wbMappe.VBProject.vbComponents(.Name).CodeModule
If .CountOfLines = 0 Then
.InsertLines 1, "Option Explicit"
.InsertLines 3, "Private Sub CommandButton1_Click()"
.InsertLines 4, "    MsgBox ""Ich bin neu hier"""
.InsertLines 5, "End Sub"
Else
.InsertLines inZeile + 3, "Private Sub CommandButton1_Click()"
.InsertLines inZeile + 4, "    MsgBox ""Ich bin neu hier"""
.InsertLines inZeile + 5, "End Sub"
End If
End With
End With
Application.DisplayAlerts = True
End Sub




Anzeige
AW: Command Button erstellen
23.10.2008 14:06:26
Jana
Hallo Beverly!!
Ich versuche..
gebe dann bescheit!
Dank dir!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Command Button in Excel erstellen


Schritt-für-Schritt-Anleitung

Um einen Command Button in Excel zu erstellen und ihn mit einem Makro zu verbinden, befolge diese Schritte:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Gehe zu VBA:

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

    • Rechtsklicke im Projekt-Explorer auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.
  4. Füge den folgenden Code ein:

    Sub AddButton()
       Dim tarCell As Range
       Set tarCell = Range("A10") ' Hier kannst du die Position anpassen
       ActiveSheet.Buttons.Add(0, 0, 0, 0).Select
       With Selection
           .Top = tarCell.Top
           .Left = tarCell.Left
           .Height = tarCell.Height
           .Width = tarCell.Width
           .Text = "Neuer Button"
           .OnAction = "DeinMakroName" ' Hier den Namen deines Makros einsetzen
       End With
    End Sub
  5. Erstelle dein Makro:

    • Füge im selben Modul dein Makro hinzu, das der Button ausführen soll.
  6. Führe das Makro aus:

    • Gehe zurück zu Excel und drücke ALT + F8, wähle AddButton und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Button wird nicht erkannt: Stelle sicher, dass du die richtige Syntax verwendest. Wenn Buttons.Add nicht erkannt wird, überprüfe, ob du im richtigen Arbeitsblatt bist und dass das Makro korrekt geschrieben ist.

  • Makro wird nicht ausgeführt: Vergewissere dich, dass der Name des Makros korrekt in .OnAction angegeben ist.


Alternative Methoden

Eine alternative Methode, um einen Button in Excel zu erstellen, ist die Verwendung von OLE-Objekten:

  1. Im VBA-Editor kannst du den folgenden Code verwenden:

    Sub button_mit_code_erstellen()
       Dim wbMappe As Workbook
       Dim oobButton As OLEObject
       Set wbMappe = Workbooks.Add
       With wbMappe.Worksheets(1)
           Set oobButton = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
           Link:=False, DisplayAsIcon:=False, _
           Left:=.Range("D10").Left, Top:=.Range("D10").Top, Width:=117, Height:=30)
           With wbMappe.VBProject.vbComponents(.Name).CodeModule
               .InsertLines 1, "Option Explicit"
               .InsertLines 3, "Private Sub CommandButton1_Click()"
               .InsertLines 4, "    MsgBox ""Ich bin neu hier"""
               .InsertLines 5, "End Sub"
           End With
       End With
    End Sub

Diese Methode ermöglicht es dir, einen Excel Command Button mit einer spezifischen Funktionalität zu versehen.


Praktische Beispiele

Hier sind einige Beispiele, die dir helfen können, einen Button zu erstellen:

  • Speichern Button:

    Sub SpeichernButton()
      Dim tarCell As Range
      Set tarCell = Range("E1")
      ActiveSheet.Buttons.Add(0, 0, 0, 0).Select
      With Selection
          .Top = tarCell.Top
          .Left = tarCell.Left
          .Height = tarCell.Height
          .Width = tarCell.Width
          .Text = "Speichern"
          .OnAction = "SpeichernMakro"
      End With
    End Sub

Hiermit kannst du einen Button erstellen, der ein Makro zum Speichern ausführt.


Tipps für Profis

  • Nutze Formularelemente für bessere Benutzeroberflächen.
  • Achte darauf, dass die Sicherheitseinstellungen in Excel es dir erlauben, Makros auszuführen.
  • Dokumentiere deine Makros gut, damit du später nachvollziehen kannst, was sie tun.
  • Experimentiere mit VBA-Fehlerbehandlungsroutinen, um deine Makros robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich einen Button in einer bestehenden Datei hinzufügen?
Verwende den VBA-Code, um den Button in der gewünschten Tabelle zu platzieren. Achte darauf, dass die Zielzelle korrekt definiert ist.

2. Kann ich mehrere Buttons erstellen?
Ja, du kannst eine Schleife verwenden, um mehrere Buttons an verschiedenen Positionen zu erstellen, indem du die Positionen in einem Array speicherst.

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