Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nummern von Schaltflächen auslesen

Nummern von Schaltflächen auslesen
08.10.2012 16:29:24
Schaltflächen
Hi,
ich habe auf einem Tabellenblatt mehrere Schaltflächen abgelegt, die verschiedene Makros auslösen.
Die Schaltflächen habe ich umbenannt.
Nach Umstellen auf eine neue Excel-Version kommt es jetzt immer wieder vor, dass die Buttons unregelmäßig und nich nachvollziehbar ihre Größe ändern.
Ich wollte jetzt eigentlich beim Aktivieren der Tabelle per Makro die Größe der Buttons festlegen, in etwa so:
ActiveSheet.Shapes("Schaltfläche 4").Select
Selection.ShapeRange.Width = 220
Selection.ShapeRange.Height = 50
Das ganze individuell für jeden Button.
Da in den 10 Tabellenblättern an die 100 Schaltflächen verteilt sind während der Entwicklung einige Buttons zigmal gelöscht und angelegt wurden, ist es schwierig die Original-Nr. der Buttons heraus zu finden. Die benötige ich aber scheinbar, um den Button per VBA anzusprechen. Die Eingabe des umgeänderten Namens funktioniert nämlich leider nicht.
Kann mir jemand helfen?
Danke

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Den Originalnamen kann man idR auch ...
08.10.2012 16:38:09
Luc:-?
…ändern, Bobby,
während deine Textänderung wohl nur die Caption geändert hat.
Gruß Luc :-?

AW: Den Originalnamen kann man idR auch ...
08.10.2012 16:40:39
onkelbobby
Hi Luc,
wie kann ich denn den Originalnamen ändern?
Onkelbobby

AW: Den Originalnamen kann man idR auch ...
08.10.2012 16:55:49
Henrik
Hallo Bobby,
schau dir das mal an.
Vielleicht hilft es.
Definier unter strNa einen Bestandteil des Namens, der überall vorkommt.
Sub Aussehen()
Dim ws As Worksheet, objtWS As Shape, strNa As String
strNa = "Command"
For Each ws In ThisWorkbook.Worksheets
For Each objWS In ws.Shapes
If objWS.Name Like strNa & "?*" = True Then
objWS.Width = 220
objWS.Height = 50
End If
Next
Next
End Sub

Gruß Henrik

Anzeige
AW: Den Originalnamen kann man idR auch ...
08.10.2012 17:11:45
onkelbobby
Hi Henrik,
danke für den Tipp,
habs Deinen Code mal ausprobiert.
Das funktioniert auch bei Commandbuttons (ActiveX-Steuerelementen). Ich habe jedoch Formularsteuerelemente eingebaut und wenn ich da beispielesweise "Schalt" bei strNa eingebe, passiert nix! Hab das auch mal in einer neuen Excel Datei mit mehreren (nicht umbenannten) Schaltflächen ausprobiert.
Weitere Ideen?

Anzeige
AW: Den Originalnamen kann man idR auch ...
08.10.2012 17:18:43
Henrik
Achso,
alle shapes sollen geändert werden. dann so:
Sub Aussehen()
Dim ws As Worksheet, objtWS As Shape
For Each ws In ThisWorkbook.Worksheets
For Each objWS In ws.Shapes
objWS.Width = 220
objWS.Height = 50
Next
Next
End Sub

Henrik

Anzeige
AW: Den Originalnamen kann man idR auch ...
08.10.2012 17:18:43
Henrik
Achso,
alle shapes sollen geändert werden. dann so:
Sub Aussehen()
Dim ws As Worksheet, objtWS As Shape
For Each ws In ThisWorkbook.Worksheets
For Each objWS In ws.Shapes
objWS.Width = 220
objWS.Height = 50
Next
Next
End Sub

Henrik

Anzeige
AW: Den Originalnamen kann man idR auch ...
08.10.2012 17:26:57
onkelbobby
Hi Henrik,
das ist schon mal nicht schlecht und funktioniert auch.
Für die meisten Buttons passt das auch.
Jedoch gibt es auch ein paar, die größer oder kleiner werden sollen (wegen des Textes). Oder kann ich auch alternativ die Textgröße der Buttons an die Größe des Shapes anpassen?
Danke!

Anzeige
AW: Den Originalnamen kann man idR auch ...
09.10.2012 11:14:47
onkelbobby
Hi,
habe bemerkt, dass man die Originalbezeichnung finden kann, indem man mit der rechten Maustaste auf den Button klickt. Im Namenfeld wird die Nr. der Schaltfläche angezeigt (hätt ich ja gleich drauf kommen können)! Danke für Eure Hilfe!

Das geht nur bei ActiveX-Objekten, ...
09.10.2012 00:09:26
Luc:-?
…Bobby;
bei Formularsteuerelementen kannst du den engl OriginalNamen als Index von Shapes benutzen. Einfache Textfelder sind hier mitunter günstiger, denn die reagieren auf den geänderten Namen und können auch mit Makros belegt wdn.
Gruß Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nummern von Schaltflächen in Excel auslesen und anpassen


Schritt-für-Schritt-Anleitung

Um die Nummern von Schaltflächen in Excel auszulesen und deren Größe anzupassen, kannst Du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei mit den Schaltflächen.

  2. Aktiviere das Entwicklertools-Menü, falls noch nicht geschehen (Datei > Optionen > Menüband anpassen > Entwicklertools aktivieren).

  3. Wechsle in den Visual Basic for Applications (VBA) Editor (Alt + F11).

  4. Füge ein neues Modul hinzu (Einfügen > Modul).

  5. Kopiere den folgenden Code in das Modul, um die Größe aller Schaltflächen in Deinem Arbeitsblatt anzupassen:

    Sub Aussehen()
       Dim ws As Worksheet
       Dim objWS As Shape
       For Each ws In ThisWorkbook.Worksheets
           For Each objWS In ws.Shapes
               objWS.Width = 220
               objWS.Height = 50
           Next
       Next
    End Sub
  6. Führe das Makro aus, um die Änderungen anzuwenden (F5 oder über die Schaltfläche "Ausführen").

  7. Um die Originalnummer einer Schaltfläche zu finden, klicke mit der rechten Maustaste auf die Schaltfläche und schaue im Namenfeld.


Häufige Fehler und Lösungen

  • Fehler: Größe der Schaltflächen ändert sich nicht.

    • Lösung: Stelle sicher, dass Du das richtige Makro ausführst. Überprüfe die Namen der Schaltflächen im Namenfeld.
  • Fehler: Makro funktioniert nur bei ActiveX-Steuerelementen.

    • Lösung: Bei Formularsteuerelementen kannst Du den englischen Originalnamen als Index von Shapes benutzen.
  • Fehler: Anpassen der Größe schlägt fehl.

    • Lösung: Überprüfe, ob die Schaltflächen in geschützten Blättern liegen. Deaktiviere den Blattschutz, um Anpassungen vorzunehmen.

Alternative Methoden

  1. Direktes Anpassen in der Excel-Oberfläche:

    • Du kannst die Schaltflächen manuell anklicken und in den Formatierungsoptionen die Größe anpassen.
  2. Verwendung von Textfeldern:

    • Textfelder reagieren besser auf Namensänderungen und können auch mit Makros belegt werden, was die Handhabung vereinfacht.

Praktische Beispiele

  • Wenn Du nur bestimmte Schaltflächen anpassen möchtest, kannst Du den Code wie folgt anpassen:

    Sub Anpassung()
       Dim ws As Worksheet
       Dim objWS As Shape
       For Each ws In ThisWorkbook.Worksheets
           For Each objWS In ws.Shapes
               If objWS.Name Like "Schaltfläche*" Then
                   objWS.Width = 220
                   objWS.Height = 50
               End If
           Next
       Next
    End Sub
  • Textgröße anpassen: Du kannst auch die Schriftgröße der Schaltflächen anpassen, um sicherzustellen, dass der Text gut lesbar ist:

    objWS.TextFrame.Characters.Font.Size = 12

Tipps für Profis

  • Nutze Namensmanager in Excel, um deinen Schaltflächen aussagekräftige Namen zu geben. Dies erleichtert die Identifizierung und Handhabung.
  • Verwende Bedingte Formatierung, um Schaltflächen basierend auf den Eingaben in anderen Zellen zu steuern.
  • In der VBA-Umgebung kannst Du Fehlerbehandlung einbauen, um das Makro robuster zu gestalten.

FAQ: Häufige Fragen

1. Wie finde ich die Originalnummer einer Schaltfläche? Um die Originalnummer zu finden, klicke mit der rechten Maustaste auf die Schaltfläche und schaue im Namenfeld.

2. Warum funktioniert mein Makro nicht bei Formularsteuerelementen? Formularsteuerelemente haben andere Eigenschaften als ActiveX-Steuerelemente. Achte darauf, den englischen Originalnamen oder die richtige Syntax zu verwenden.

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