Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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.

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige