Registriert seit: 19.01.2020
Version(en): 2007
Hallo,
in einem Tabellenblatt befinden sich mehrere Schaltflächen (Commandbuttons via Formularsteuerelemente), deren Beschriftung (Caption) geändert wurde.
Frage: Wie kann man die 'interne' Schaltflächennummer ermitteln? Auch bei markierter Schaltfläche werden nur die Tabellenblatteigenschaften angezeigt.
VG!
00202
Nicht registrierter Gast
Hallo, :19:
probiere es mal so: :21:
[attachment=30879]
Registriert seit: 14.05.2017
Version(en): MS Office Prof. Plus 2016_32-Bit
06.04.2020, 12:12
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2020, 12:31 von hddiesel.)
Hallo Wanderfalke,
einmal folgendes testen.
Im 1. Makro mit
.NameIm 2. Makro mit
.ID, hier werden die Nummern ausgegeben
Code:
'Mit .Name
Sub Shape_TopLeftCell_Name()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
With sh
Select Case .TopLeftCell.Address
'Shapes im Bereich
Case "$C$1", "$E$1", "$G$1", "$I$1"
If .Type = 12 Then MsgBox "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein Formularsteuerelement:" & vbLf & .Name
If .Type = 8 Then MsgBox "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein ActiveX-Steuerelement:" & vbLf & .Name
'Shapes außerhalb des Oben genannten Bereichs
Case Else
If .Type = 8 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein ActiveX-Steuerelement:" _
& vbLf & .Name
If .Type = 12 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein Formularsteuerelement:" _
& vbLf & .Name
If .Type = 13 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist eine Grafik:" _
& vbLf & .Name
End Select
End With
Next sh
End Sub
Code:
'Mit .ID, statt .Name
Sub Shape_TopLeftCell_ID()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
With sh
Select Case .TopLeftCell.Address
'Shapes im Bereich
Case "$C$1", "$E$1", "$G$1", "$I$1"
If .Type = 12 Then MsgBox "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein Formularsteuerelement:" & vbLf & .ID
If .Type = 8 Then MsgBox "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein ActiveX-Steuerelement:" & vbLf & .ID
'Shapes außerhalb des Oben genannten Bereichs
Case Else
If .Type = 8 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein ActiveX-Steuerelement:" _
& vbLf & .ID
If .Type = 12 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist ein Formularsteuerelement:" _
& vbLf & .ID
If .Type = 13 Then MsgBox "Shapes ist außerhalb des Bereichs:" _
& vbLf & "Shapes TopLeftCell: " & .TopLeftCell.Address _
& vbLf & vbLf & "Shapes ist eine Grafik:" _
& vbLf & .ID
End Select
End With
Next sh
End Sub
Gruß Karl
Registriert seit: 19.01.2020
Version(en): 2007
Hallo Case, hallo Karl,
vielen Dank für eure Infos. Beides funktioniert wie es soll.
VG!