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

Forumthread: VBA Button einfügen

VBA Button einfügen
06.11.2019 09:34:07
Tom
Hallo,
ich möchte über VBA einen Button in mehrere Tabellenblätter einfügen, der bei Betätigung ein Makro aufruft. Der Button soll dabei auf dem ersten Tabellenblatt erstellt und für die restlichen kopiert werden.
Bei der Erstausführung bekomme ich allerdings den Laufzeitfehler 1004: "Die Characters-Eigenschaft des Button-Objektes kann nicht zugewiesen werden".
Lösche ich anschließend den eingefügten, aber unbeschrifteten Button aus dem Tabellenblatt und führe das Makro erneut aus, funktioniert alles einwandfrei.
Dim iCol As Integer
Dim oButton As Object
[...]
If intCol = 1 Then
Set oButton = Sheets(Tabelle1.Cells(1, iCol).Value).Buttons.Add(iLeftButton, iTopButton, iWidthButton, iHeightButton)
oButton.Characters.Text = "Standardwerte wiederherstellen"
oButton.Name = "ButtonStdWerte"
oButton.OnAction = "'" & ThisWorkbook.Name & "'!" & "StandardwerteWiederherstellen.StandardwerteWiederherstellen"
Else
Sheets(Tabelle1.Cells(1, 1).Value).Buttons("ButtonStdWerte").Copy
With Sheets(Tabelle1.Cells(1, iCol).Value)
.Paste
.Shapes(.Shapes.Count).Top = iTopButton
.Shapes(.Shapes.Count).Left = iLeftButton
End With
End If
Ich hoffe, mir kann hier jemand weiterhelfen.
Vielen Dank und Grüße
Tom
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Button einfügen
06.11.2019 09:37:06
Tom
EDIT:
Die Variablen zur Positionierung & Dimensionierung deklarieren sich wie folgt:
Dim iLeftButton As Integer
Dim iTopButton As Integer
Dim iHeightButton As Integer
Dim iWidthButton As Integer
iLeftButton = 693
iTopButton = 81
iHeightButton = 35
iWidthButton = 110
Die If-Anweisung lautet zudem If iCol = 1 Then ...
Anzeige
AW: VBA Button einfügen
06.11.2019 09:39:03
Nepumuk
Hallo Tom,
so:
oButton.Text = "Standardwerte wiederherstellen"
Gruß
Nepumuk
AW: VBA Button einfügen
06.11.2019 09:43:55
Tom
Hallo Nepomuk,
vielen Dank für deinen Vorschlag.
Aber auch das funktioniert leider nur genau wie zuvor.
Laufzeitfehler 1004: "Die Text-Eigenschaft des Button-Objektes kann nicht zugewiesen werden."
Anschließend lösche ich den Button wieder und führe es erneut aus, worauf alles funktioniert.
Auch "oButton.Caption = ..." bringt das gleiche Ergebnis.
Viele Grüße
Tom
Anzeige
AW: VBA Button einfügen
06.11.2019 09:46:58
Nepumuk
Hallo Tom,
kann ich nicht nachvollziehen. Bei mir klappt das so von Anfang an.
Gruß
Nepumuk
AW: VBA Button einfügen
06.11.2019 10:56:24
Tom
Hallo Nepumuk,
ich habe mittlerweile rausgefunden, dass es bei mir auch funktioniert, wenn ich es in Excel ausführe.
Das Problem ist allerdings, dass ich das Makro über NI LABView aufrufe. Da wiederum tritt dieser Fehler nach wie vor auf. (Andere Makros werden dadurch allerdings problemlos ausgeführt ^^)
Schätze, dann liegt mein Problem allerdings außerhalb dieses Forums.
Außer es findet sich zufällig jemand, der Erfahrungen mit der Konnektivität zwischen LABView und Excel hat ? ;-)
Viele Grüße und nochmal besten Dank
Tom
Anzeige
AW: VBA Button einfügen
06.11.2019 11:17:36
Nepumuk
Hallo Tom,
füge vor dem Einfügen der Beschriftung mal ein DoEvents ein.
Gruß
Nepumuk
AW: VBA Button einfügen
06.11.2019 11:29:59
Tom
Hallo Nepumuk,
ändert leider auch nichts...
Außerdem bekomme ich den Fehler auch, wenn ich zuerst oButton.Name oder oButton.OnAction ausführe.
Dann eben mit "Die Name-Eigenschaft..." bzw. "Die OnAction-Eigenschaft...".
Habe auch schon eine Arbeitsmappe erstellt, die nur ein Makro zum Erstellen eines Buttons enthält und dieses über ein Test-VI in LabVIEW ausgeführt - das funktioniert auch.
Viele Grüße
Tom
Anzeige
AW: VBA Button einfügen
08.11.2019 10:53:38
Tom
Hallo Community,
Hallo Nepumuk,
habe das Problem nun mehr oder minder durch Zufall gelöst.
In LabVIEW wurde die Excel-Arbeitsmappe minimiert geöffnet, wodurch der Button nicht zugewiesen werden konnte. Öffne ich die Mappe nun normal bzw. maximiert, werden alle Buttons eingefügt, beschriftet, etc..
Mir ist die Lösung zwar nicht ganz ersichtlich, vor allem, was die Fenstergröße der Arbeitsmappe mit der Zuweisung der Buttoneigenschaft zu tun hat, aber solange es funktioniert, werde ich mich nicht weiter beklagen.
Grüße und schönes Wochenende
Tom
Anzeige
;

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

VBA Button in Excel einfügen


Schritt-für-Schritt-Anleitung

Um einen VBA Button in Excel einzufügen, gehe wie folgt vor:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste auf den VBA-Projektbaum und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub ButtonErstellen()
       Dim oButton As Object
       Dim iLeftButton As Integer
       Dim iTopButton As Integer
       Dim iHeightButton As Integer
       Dim iWidthButton As Integer
    
       iLeftButton = 100
       iTopButton = 100
       iHeightButton = 30
       iWidthButton = 100
    
       Set oButton = ActiveSheet.Buttons.Add(iLeftButton, iTopButton, iWidthButton, iHeightButton)
       oButton.Characters.Text = "Klicke mich"
       oButton.OnAction = "DeinMakro"
    End Sub
  4. Makro definieren: Erstelle ein weiteres Makro, das ausgeführt werden soll, wenn der Button gedrückt wird.

  5. Führe das Makro aus: Zurück in Excel, drücke ALT + F8, wähle ButtonErstellen und klicke auf Ausführen. Der Button wird nun auf dem Arbeitsblatt eingefügt.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Wenn du diesen Fehler erhältst, könnte es daran liegen, dass der Button nicht korrekt zugewiesen wurde. Überprüfe, ob der Excel-Bereich, in dem du den Button einfügst, sichtbar ist.

  • Button beschriften funktioniert nicht: Stelle sicher, dass der Button nicht minimiert oder unsichtbar ist. Probiere, das Excel-Fenster zu maximieren, bevor du das Makro ausführst.

  • Button wird nicht erstellt: Überprüfe, ob du das richtige Arbeitsblatt aktiv hast, bevor du das Makro ausführst.


Alternative Methoden

Neben dem oben beschriebenen Verfahren gibt es auch alternative Methoden, um einen Button in Excel zu erstellen:

  • Excel CommandButton einfügen:

    1. Gehe zu Entwicklertools.
    2. Wähle Einfügen und dann CommandButton (ActiveX-Steuerelement).
    3. Zeichne den Button auf dem Arbeitsblatt.
  • Formen verwenden: Du kannst auch eine Form (z.B. Rechteck) einfügen und ihr eine Makro-Zuweisung geben. Klicke mit der rechten Maustaste auf die Form, wähle Makro zuweisen und wähle dein Makro aus.


Praktische Beispiele

  1. Button mit Funktion einfügen: Um einen Button zu erstellen, der ein einfaches Makro aufruft, verwende den folgenden Code:

    Sub MeinMakro()
       MsgBox "Button wurde gedrückt!"
    End Sub

    Ändere die Zeile oButton.OnAction = "DeinMakro" in oButton.OnAction = "MeinMakro".

  2. Button in Zelle einfügen: Um den Button in eine bestimmte Zelle einzufügen, kannst du die Positionierung anpassen:

    Set oButton = ActiveSheet.Buttons.Add(Cells(2, 2).Left, Cells(2, 2).Top, iWidthButton, iHeightButton)

Tipps für Profis

  • Button mit Makro hinzufügen: Verwende ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1") für mehr Flexibilität.

  • Formatierung anpassen: Nutze Eigenschaften wie oButton.Font.Size oder oButton.BackColor, um das Aussehen des Buttons zu verbessern.

  • Debugging: Setze DoEvents zwischen den Zuweisungen, um sicherzustellen, dass Excel die Aktionen korrekt verarbeitet.


FAQ: Häufige Fragen

1. Wie kann ich einen Button in Excel ohne Makro einfügen?
Du kannst einen Button (z.B. Rechteck) aus der Formen-Galerie einfügen und eine Aktion zuweisen, ohne VBA zu verwenden.

2. Kann ich den Button in einer bestimmten Zelle positionieren?
Ja, du kannst die Cells-Eigenschaft verwenden, um den Button in einer bestimmten Zelle zu positionieren.

3. Was mache ich, wenn der Button nicht reagiert?
Überprüfe, ob das Makro in der richtigen Arbeitsmappe gespeichert ist und dass die Sicherheitsstufe für Makros in Excel angepasst wurde.

Nutze diese Schritte und Tipps, um erfolgreich einen VBA Button in Excel einzufügen und optimal zu nutzen!

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