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

Forumthread: Button erstellen mit vba

Button erstellen mit vba
09.02.2005 15:22:26
Jonny
also ich will einen Button mittels vba erstellen lassen.
Ich bin dank anderer User sehr weit gekommen, doch noch nicht ganz zum Ziel.
Also mit den folgenden Code, erstelle ich einen Button eine Spalte tiefer und eine Spalte weiter rechts. Kann man aber die Koordinaten auf eine andere Weise eingeben?! zb. über Cells (zeile, spalte) ?!
gegeben habe ich die genaue Zeile und spalte. Weiss sie jedoch nicht anzuwenden.
------------

Sub Zeile_Löschen_Button_Erstellen ()
Dim btn As Button
With ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 1)
Set btn = ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height)
btn.Caption = "Zeile löschen"
btn.OnAction = "Best_Zeilen_Löschen"
End With
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Button erstellen mit vba
Ulf
Set btn = ActiveSheet.Buttons.Add(cells(3,5).Left, cells(3,5).Top, .Width, .Height)
Ulf
AW: Button erstellen mit vba
09.02.2005 15:46:55
Jonny
Hi Ulf,
ich hab immer noch ein Problem.
Wie du es gesagt hast, klappt es. jedoch habe ich stets ein Problem, was ich damit versucht habe zu beheben.
Und zwar. Wenn ich dieses Makro ausführe dann erstellt es ein Button für mich an einer best. Stelle (z. b. A1).
Wenn ich nun das Makro erneut ausführe, dann erstellt es noch ein Button.
Erneut bei A1.
Nun sollte das zuerst geschaffene Button eins runterrutschen, also nur noch in A2 vorhanden sein.
Jedoch ist das erste Button sowohl in A1 als auch in A2 vorhanden.
Das zweite Button ist nur in A1 vorhanden.
Starte ich nochmal das Makro, dann ist das erste Button in A1 bis A3, das zweite Button in A1 und A2 und das dritte Button nur in A1 vorhanden.
Weiss du vielleicht woran das liegt!?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Button erstellen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um einen Button in Excel mit VBA zu erstellen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen. Diese Anleitung geht davon aus, dass du grundlegende Kenntnisse in Excel und VBA hast.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im VBA-Editor mit der rechten Maustaste auf das Projekt, in dem du den Button erstellen möchtest, und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code in das Modul ein:

    Sub Button_Erstellen()
       Dim btn As Button
       ' Button an Zelle C3 erstellen
       Set btn = ActiveSheet.Buttons.Add(Cells(3, 3).Left, Cells(3, 3).Top, 100, 30)
       btn.Caption = "Mein Button"
       btn.OnAction = "MeinMakro"
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro "Button_Erstellen" aus, um den Button zu erstellen.

Mit ActiveSheet.Buttons.Add kannst du Buttons in VBA programmatisch hinzufügen. Du kannst die Koordinaten des Buttons auch durch Cells(Zeile, Spalte) festlegen, wie im Beispiel gezeigt.


Häufige Fehler und Lösungen

  • Problem: Der Button wird an der falschen Stelle erstellt.

    • Lösung: Stelle sicher, dass du Cells(Zeile, Spalte) korrekt angibst. Überprüfe die Zellreferenzen.
  • Problem: Mehrere Buttons überlappen sich.

    • Lösung: Bewege den Button nach dem Erstellen in eine andere Zelle, indem du die Offset-Methode anwendest:
    btn.TopLeftCell.Offset(1, 0).Select
  • Problem: Der Button wird nicht erstellt.

    • Lösung: Stelle sicher, dass du das Makro korrekt ausführst und dass der Code keine Fehler enthält.

Alternative Methoden

Neben der Verwendung von ActiveSheet.Buttons.Add kannst du auch die Shapes-Objekte nutzen, um Buttons zu erstellen. Hier ein Beispiel:

Sub ButtonMitShapeErstellen()
    Dim shp As Shape
    Set shp = ActiveSheet.Shapes.AddButton(100, 100, 100, 30)
    shp.TextFrame.Characters.Text = "Mein Shape-Button"
    shp.OnAction = "MeinMakro"
End Sub

Diese Methode ist nützlich, wenn du mehr Kontrolle über das Aussehen und die Position des Buttons benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Buttons programmatisch erstellen und ihre Eigenschaften anpassen kannst:

  1. Button zum Löschen einer Zeile:

    Sub Zeile_Loeschen_Button_Erstellen()
       Dim btn As Button
       Set btn = ActiveSheet.Buttons.Add(Cells(3, 5).Left, Cells(3, 5).Top, 100, 30)
       btn.Caption = "Zeile löschen"
       btn.OnAction = "Best_Zeilen_Loeschen"
    End Sub
  2. Button mit dynamischer Position:

    Sub DynamischerButton()
       Dim btn As Button
       Dim zeile As Integer
       zeile = 4 ' Ändere die Zeile nach Bedarf
       Set btn = ActiveSheet.Buttons.Add(Cells(zeile, 2).Left, Cells(zeile, 2).Top, 100, 30)
       btn.Caption = "Klick mich"
       btn.OnAction = "EinfachesMakro"
    End Sub

Tipps für Profis

  • Nutze With-Blöcke, um den Code sauberer und lesbarer zu gestalten.
  • Experimentiere mit den Eigenschaften von Buttons, wie Font, Color, und Size, um deine Buttons ansprechender zu gestalten.
  • Verwende FormControls anstelle von ActiveX-Controls, wenn du einfachere Buttons ohne umfangreiche Programmierung benötigst.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Buttons gleichzeitig erstellen?
Ja, du kannst eine Schleife verwenden, um mehrere Buttons zu erstellen. Zum Beispiel:

For i = 1 To 5
    Set btn = ActiveSheet.Buttons.Add(Cells(i + 1, 1).Left, Cells(i + 1, 1).Top, 100, 30)
    btn.Caption = "Button " & i
Next i

2. Wie kann ich das Aussehen des Buttons ändern?
Du kannst die Eigenschaften des Buttons anpassen, indem du die Shape-Objekte verwendest oder die Eigenschaften des btn-Objekts direkt im Code anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige