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

Per VBA Steuerelement einfügen

Forumthread: Per VBA Steuerelement einfügen

Per VBA Steuerelement einfügen
19.08.2013 14:02:19
Birgit
Hallo!
ich möchte mittels VBA ein Steuerelement in ein Tabellenblatt einfügen ; da jedoch Excel bei jeden neuen Steuerelement weiter zählt funktioniert mein Code leider nicht:

Sub Makro9()
' Makro9 Makro
Sheets("ACT ").Select
Range("G1").Select
ActiveSheet.Buttons.Add(453, 10.5, 105, 36).Select
Selection.OnAction = "AlleAus"
ActiveSheet.Shapes("BACK CLOSE ALL").Select
Selection.Characters.Text = "BACK CLOSE ALL"
With Selection.Characters(Start:=1, Length:=14).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 32
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("F2").Select
End Sub

Kann man bei der Erstellung des Steuerelements den Namen schon vergeben; damit ich dieses Problem übergehen kann?
Danke schon im Voraus!

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Steuerelement einfügen
19.08.2013 15:03:25
Doris
Hallo Birgit,
Habe Dein Makro mal etwas entschlackt und lege drei Test-Button im Sheets("ACT ") an. Bei mir hat es geklappt.
und hier der Code
Sub Makro_test()
Sheets("ACT ").Select
ActiveSheet.Buttons.Add(10, 10.5, 105, 36).Select
Selection.OnAction = "test"
Selection.Characters.Text = "test"
With Selection.Characters(Start:=1, Length:=14).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.ColorIndex = 32
End With
ActiveSheet.Buttons.Add(200, 10.5, 105, 36).Select
Selection.OnAction = "test2"
Selection.Characters.Text = "test2"
With Selection.Characters(Start:=1, Length:=14).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.ColorIndex = 32
End With
ActiveSheet.Buttons.Add(400, 10.5, 105, 36).Select
Selection.OnAction = "test3"
Selection.Characters.Text = "test3"
With Selection.Characters(Start:=1, Length:=14).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.ColorIndex = 32
End With
End Sub
Tip : Das ist das Problem Beim Makro aufzeichnen. Kriegst viel unnötiges Zeug. Alles was mit no belegt ist kannst du rausschmeissen. Im Zweifelsfall habe ich mich immer rangetasten und Zeilen im Code auf Kommetar gesetzt.
Gruß Doris

Anzeige
AW: Per VBA Steuerelement einfügen
19.08.2013 15:17:45
Birgit
Hallo!
Super - vielen vielen Dank es funkioniert!
Gruß Birgit

AW: Per VBA Steuerelement einfügen
19.08.2013 15:16:41
fcs
Hallo Birgit,
du kannst den Namen direkt bei der Steuerelement-Erstellung vergeben.
Der Name darf auf jedem Tabellenblatt aber immer nur einmal vergeben werden.
Bei mir gab es beim Testen Probleme bei der Formatierung der Schaltflächenbeschriftung. Deshalb hab ich 2 Zeilen auskommentiert.
Wahrscheinlich hat dir hier der Makrorecorder einen Streich gespielt, der das Umbenennen der Schaltfläche nicht aufgezeichnet hat, wohl aber die anschliessende Selektion der Schaltfläche.
Gruß
Franz
Sub Makro9()
' Makro9 Makro
Sheets("ACT ").Select
Range("G1").Select
ActiveSheet.Buttons.Add(453, 10.5, 105, 36).Select
With Selection
.OnAction = "AlleAus"
.Name = "BACK CLOSE ALL"
.Characters.Text = "BACK CLOSE ALL"
With .Characters.Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 32
'.TintAndShade = 0
'.ThemeFont = xlThemeFontNone
End With
End With
Range("F2").Select
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Steuerelemente in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um ein Steuerelement in Excel mittels VBA einzufügen, folge diesen Schritten:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du das Steuerelement hinzufügen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Erstelle ein neues Modul über Einfügen > Modul.

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

    Sub SteuerelementEinfügen()
       Sheets("ACT").Select
       ActiveSheet.Buttons.Add(10, 10.5, 105, 36).Select
       With Selection
           .OnAction = "DeineAktion" ' Ersetze "DeineAktion" durch den Namen deiner Subroutine
           .Name = "MeinButton" ' Vergib einen Namen für das Steuerelement
           .Characters.Text = "Klicken"
           With .Characters.Font
               .Name = "Calibri"
               .FontStyle = "Fett"
               .Size = 11
               .ColorIndex = 32
           End With
       End With
    End Sub
  5. Ändere die Parameter nach Bedarf (Position, Größe, Text etc.).

  6. Führe das Makro aus, um das Steuerelement in das Arbeitsblatt einzufügen.


Häufige Fehler und Lösungen

  • Problem: Der Name des Steuerelements ist bereits vergeben.

    • Lösung: Stelle sicher, dass der Name des Steuerelements auf jedem Tabellenblatt eindeutig ist. Du kannst den Namen direkt im Code vergeben, wie im oben genannten Beispiel.
  • Problem: Das Steuerelement wird nicht richtig formatiert.

    • Lösung: Überprüfe den Code auf nicht benötigte Zeilen, die durch den Makrorecorder hinzugefügt wurden. Diese können deine Formatierung stören.

Alternative Methoden

Eine alternative Methode zum Einfügen von Steuerelementen ist die Verwendung von ActiveX-Steuerelementen. Diese bieten mehr Anpassungsmöglichkeiten:

  1. Gehe zu Entwicklertools > Einfügen.
  2. Wähle ActiveX-Steuerelemente und dann das gewünschte Steuerelement.
  3. Zeichne das Steuerelement auf das Arbeitsblatt.

Die Programmierung erfolgt ebenfalls über VBA, z. B.:

Private Sub CommandButton1_Click()
    MsgBox "Button wurde geklickt!"
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Steuerelemente in Excel VBA einfügen und verwenden kannst:

  1. Button hinzufügen und eine Aktion ausführen:

    Sub ButtonHinzufuegen()
       Dim btn As Button
       Set btn = ActiveSheet.Buttons.Add(100, 50, 100, 30)
       With btn
           .Caption = "Klick mich"
           .OnAction = "Aktion"
       End With
    End Sub
    
    Sub Aktion()
       MsgBox "Du hast den Button geklickt!"
    End Sub
  2. Mehrere Buttons mit unterschiedlichen Aktionen erstellen:

    Sub MehrereButtonsHinzufuegen()
       Dim i As Integer
       For i = 1 To 3
           Dim btn As Button
           Set btn = ActiveSheet.Buttons.Add(10, i * 40, 100, 30)
           btn.Caption = "Button " & i
           btn.OnAction = "Aktion" & i
       Next i
    End Sub
    
    Sub Aktion1()
       MsgBox "Button 1 wurde geklickt!"
    End Sub
    
    Sub Aktion2()
       MsgBox "Button 2 wurde geklickt!"
    End Sub
    
    Sub Aktion3()
       MsgBox "Button 3 wurde geklickt!"
    End Sub

Tipps für Profis

  • Nutze den Makrorecorder sparsam, um überflüssigen Code zu vermeiden. Du kannst unnötige Zeilen kommentieren, um den Code sauber zu halten.
  • Experimentiere mit den Eigenschaften der Steuerelemente, um das Design und die Funktionalität nach deinen Wünschen anzupassen.
  • Achte darauf, dass der Name der Steuerelemente eindeutig ist, besonders wenn du mehrere Steuerelemente auf einem Blatt hast.

FAQ: Häufige Fragen

1. Kann ich den Namen des Steuerelements während der Erstellung festlegen?
Ja, du kannst den Namen direkt im Code vergeben, wie im Beispiel gezeigt.

2. Was tun, wenn das Steuerelement nicht angezeigt wird?
Überprüfe die Position und Größe des Steuerelements im Code und stelle sicher, dass es im sichtbaren Bereich des Arbeitsblatts liegt.

3. Wo finde ich die Steuerelemente in Excel?
Du findest die Steuerelemente unter Entwicklertools > Einfügen. Dort kannst du sowohl Form-Steuerelemente als auch ActiveX-Steuerelemente auswählen.

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