Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
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

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

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?

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

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 :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige