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

vorhandene CommanButton zaehlen

Forumthread: vorhandene CommanButton zaehlen

vorhandene CommanButton zaehlen
07.09.2018 09:59:06
Torsten
Hallo zusammen,
ich habe einen Code, um einen CommandButton zu erzeugen auf dem aktiven Tabellenblatt. Das funktioniert auch super. Allerdings würde ich den Code gerne erweitern, da schon Buttons auf dem Blatt vorhanden sind.
Meine Frage. Wie kann ich die vorhandenen Buttons zählen, damit ich den neu erzeugten richtig _ benennen kann, also die Anzahl an eine Variable (z.B. a) übergeben kann und ihn dann mit

"Button_" & a + 1
benenne?
Mein Code:

Private Sub Create_Button()
Dim btn As Button
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=ActiveSheet.Cells(2, 22).Left + 5, _
Top:=ActiveSheet.Cells(2, 22).Top, Width:=117#, Height:=27).Name = "Button_1"
End Sub
Vielen Dank für eure Hilfe.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
wenns nur CommandButton gibt ...
07.09.2018 10:14:46
Matthias
Hi
evtl so?

MsgBox ActiveSheet.Shapes.Count
Gruß Matthias
AW: vorhandene CommanButton zaehlen
07.09.2018 11:51:44
EtoPHG
Hallo Torsten,
du brauchst eine kleine UDF in einem Modul:
Public Function OleObjectsCount(controlType As String) As Long
Dim obj As OLEObject
For Each obj In ActiveSheet.OLEObjects
If obj.OLEType = xlOLEControl Then OleObjectsCount = _
OleObjectsCount + -(InStr(obj.progID, controlType) > 0)
Next obj
End Function

Dann eine kleine CodeAnpassung:

Private Sub Create_Button()
Dim btn As Button
Dim newButtonID As String
newButtonID = CStr(OleObjectsCount("CommandButton") + 1)
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=ActiveSheet.Cells(2, 22).Left + 5, _
Top:=ActiveSheet.Cells(2, 22).Top, Width:=117#, Height:=27).Name = _
"Button_" & newButtonID
End Sub

Testen kannst du die UDF z.B. mit
Sub TestOleCount()
MsgBox "ActiveX Schaltflächen: " & OleObjectsCount("CommandButton")
MsgBox "ActiveX Textfelder: " & OleObjectsCount("TextBox")
MsgBox "ActiveX Listenfelder: " & OleObjectsCount("ListBox")
MsgBox "ActiveX Kontrollkästchen: " & OleObjectsCount("CheckBox")
MsgBox "ActiveX Optionsfelder: " & OleObjectsCount("OptionButton")
MsgBox "ActiveX Kombinationsfelder: " & OleObjectsCount("ComboBox")
End Sub
Gruess Hansueli
Anzeige
;

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