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

VBA, Schaltflächen, Überlauffehler

Forumthread: VBA, Schaltflächen, Überlauffehler

VBA, Schaltflächen, Überlauffehler
29.01.2025 09:42:23
henry
Hallo zusammen!

Mein Problem:
Vor einiger Zeit habe ich durch einen dummen Programmierfehler aus Versehen
weit über40000 Befehlsschaltflächen erzeugt.
Ich habe sie per Makro alle wieder gelöscht.
Wenn ich jetzt gewollt eine neue Schaltfläche erzeuge, dann bekommt diese
automatisch die nächste freie Nummer, also weit über 40000!, zugewiesen.

Diesen Schaltflächen mit den hohen Nummern lassen sich problemlos Makros zuordnen,
aber leider bekomme ich jedes Mal einen Überlauf-Fehler, wenn ich eine solche Schaltfläche per
ActiveSheet("Button xyz").Activate
ansprechen will, um sie zu formatieren.

Wie kann ich den internen Zähler der Schaltflächen zurücksetzen?
Wie kann ich die intern zugewiesene Nummer einer Schaltfläche selbst bestimmen/ändern?
Wie kann ich nicht mehr existierende Schaltflächen (weil gelöscht) aus der internen Numerierung herausnehmen?
Oder habt Ihr eine ganz andere Lösung für mein Problem!

Liebe Grüße
Henry
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Schaltflächen, Überlauffehler
29.01.2025 14:03:06
Piet
Hallo Henry

das Problem ist mir auch allzu gut bekannt, habe eine Simple Lösung wenn es nur Button sind.
Probiere sie einfach mal aus. Die MsgBox Zeile kannst du löschen wenn es zuviele Button sind!

mfg Piet

Sub Button_neu_benennen()

For j = 1 To ActiveSheet.Shapes.Count
Txt = ActiveSheet.Shapes(j).Name
For i = 0 To 6
If Not IsNumeric(Right(Txt, i + 1)) Then _
Txt2 = Left(Txt, Len(Txt) - i): Exit For
Next i
ActiveSheet.Shapes(j).Name = Txt2 & j
MsgBox ActiveSheet.Shapes(j).Name
Next j
End Sub
Anzeige
AW: Gute Idee, danke für die kluge Änderung ... oWt
29.01.2025 15:38:04
Piet
...
AW: VBA, Schaltflächen, Überlauffehler
01.02.2025 12:09:03
henry
Allen die geantwortet haben vielen Dank.
Ihr habt mir geholfen.
Gruß
Henry
AW: VBA, Schaltflächen, Überlauffehler
29.01.2025 14:23:51
Yal
Hallo Piet,

willst Du wirklich bei jeder diesen Shape eine MsgBox aufpopen lassen? Es reicht vielleicht die Auflistung im Direktfenster auszugeben

Sub Button_neu_benennen()

Dim Sh As Shape
Dim j As Long

For Each Sh In ActiveSheet.Shapes
j = j + 1
txt = Sh.Name
Do While IsNumeric(Right(txt, 1))
txt = Left(txt, Len(txt) - 1)
Loop
Debug.Print Sh.Name & " -> " & txt & j
Sh.Name = txt & j
Next
End Sub

VG
Yal
Anzeige
AW: VBA, Schaltflächen, Überlauffehler
29.01.2025 17:04:36
Dieter(Drummer)
Guten tag Yal,

den Code von Piet, mit Angabe von dir mit Nutzung des Direktfensters, Code ist einfach perfekt und hat mich auch interessiert.

Habe dabei festgestellt, dass bei Code mit Ausgabe im Direktfenster, der alte Button Name und der neue Name angezeigt wird. Wenn man den Code nochmal aufruft, wird ebenfalls auch der alte Name und der neue Name angezeigt. So sieht man, wie oft man den Code auch aktiviert, immer wieder den alten und den neuen Namen.
Finde ich prima :-).

Gruß,
Dieter(Drummer)
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18