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

Alle Shapes markieren aber Commandbuttons nicht

Alle Shapes markieren aber Commandbuttons nicht
03.11.2023 10:11:43
Dieter(Drummer)
Guten Tag an alle ...

Auf der Userform werden bei Klick auf CommandButton 5,, alle Shapes UND alle CommandButtons im aktiven Tabellenblatt markiert. Das funktioniert.
Es sollen aber alle Shapes markiert werden. OHNE alle CommandButtons auf dem aktiven Tabellenblatt. Also die CommandButtons sollen nicht mit markiert werden.

In meinem Code "ActiveSheet("CommandButton1").Select = False" funktioniert das nicht.

Ich bekommne es nicht hin und bitte um Hilfe, wie der Code dann richtig lauten muss, damit alle CommandButtons im Tabellenblatt, nicht mit markiert werden.

Mit Gruß,
Dieter(Drummer)

Private Sub CommandButton5_Click()

ActiveSheet.Shapes.SelectAll
ActiveSheet("CommandButton1").Select = False
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Shapes markieren aber Commandbuttons nicht
03.11.2023 10:33:26
Beverly
Hi Dieter,

alles was sich als Objekt im Tabellenblatt befindet sind Shapes - auch CommandButton. Um nur bestimmte Shapes auszuwählen mußt du in einer Schleife über alle Shapes laufen, den Typ (oder z.B. einen Teil des Namen, der bei allen identisch ist)) abfragen und dann entsprechend den Namen der betreffenden Shapes in ein Array schreiben und dann kannst du anschließend alle gewünschten zusammen auswählen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: Danke Karin für Rückmeldung ...
03.11.2023 11:11:23
Dieter(Drummer)
Hallo Karin,

... und Danke für deine Info zu meinem Problem.

Mit den Codes von Thorsten und Daniel ist mein Probelm gelöst.

Danke dir dennoch und einen erfrolgreichen Tag,
Dieter(Drummer)
Anzeige
AW: Alle Shapes markieren aber Commandbuttons nicht
03.11.2023 10:34:42
Oberschlumpf
Hi Dieter,

meinst du vielleicht so?


Sub test()

Dim lshpAll As Shape

For Each lshpAll In ActiveSheet.Shapes
If lshpAll.Type > 12 Then
lshpAll.Select False
End If
Next

End Sub

Hilfts?

Ciao
Thorsten
AW: Danke für Rückmeldung, Thorsten ...
03.11.2023 11:13:48
Dieter(Drummer)
Hallo Thorsten,

... und dein Code funktioniert wie gewünscht. Danke ...

Gruß und einen erfolgreichen Tag,
Dieter(Drummer)
AW: Bedeutung der 12 im Code
03.11.2023 12:50:58
Dieter(Drummer)
Hallo Thorsten,

was bedeutet die "12" in deinem Code? ist das eine Kennziffer der CommandButton?
Möchte den Code auch verstehen und deshalb bitte eine Info.

Mit der Bitte um Info, grüßt
Dieter(Drummer)
Anzeige
AW: Bedeutung der 12 im Code
03.11.2023 12:57:45
daniel
Hi
ja, das ist die Typ-Nummer eines Commandbuttons.
es gibt sicherlich auch eine lesbare Umschreibung, die man in der Dokumentation sicherlich findet, aber das bekommt man, wenn man die Objekte mal Einzeln selektiert und im Direktfenster: ?Selection.Type eingibt
Gruß Daniel
AW: Danke Daniel ...
03.11.2023 13:04:50
Dieter(Drummer)
Hallo Daniel,

... für die Info.
Gibt es irgendwo eine Gesamtliste der Typ-Nummern, der verschiedenen Buttons?

Danke erstmal und Gruß,
Dieter(Drummer)
AW: Typ-Nummern Abfrage über Direktfenster
03.11.2023 13:24:03
Dieter(Drummer)
Hallo Daniel,

wenn ich im Tabellenblatt z.B. den CommandButton markiere, mit Strg+G das Direktfenster aufrufe, dann unter "Verweis" "?Selection.Type" eingebe, kommt nach OK , "Bezug ist ungültig".

Was mache ich falsch?

Gruß, Dieter(Drummer)
Anzeige
Typ-Nummer per VBA ermitteln
03.11.2023 14:11:32
Beverly
Hi Dieter,

zielgerichtet die Typ-Nummer für ein bestimmtes Shape:

Sub ShapeTypErmitteln()

Dim shaShape As Shape
Set shaShape = ActiveSheet.Shapes("CommandButton1")
MsgBox shaShape.Type
End Sub


oder Typ-Nummer und Name für alle Shapes:

Sub ShapeTypAnsprechen()

Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
MsgBox shaShape.Type & vbLf & shaShape.Name
Next shaShape
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Danke Karin ...
03.11.2023 14:26:33
Dieter(Drummer)
Hallo Karin,

beide Code Varianten klappen perfekt und kann ich nun alle diversen Buttons Typ-Nummern auslesen.
Danke dir und noch einen erfolgreichen Tag.

Gruß, Dieter(Drummer)
Typen von Shapes
03.11.2023 17:18:27
Beverly
Hi Dieter,

du kannst die Shapes auch direkt mit ihrem Typ ansprechen und musst nicht unbedingt die Typ-Nummer verwenden - schau dazu die Auflistung und Gegenüberstellung von Typ und Typ-Nummr hier: https://msdn.microsoft.com/de-de/library/office/ff860759.aspx

Mit dem Typ msoOLEControlObject bzw. der Typ-Nummer 12 werden alle ActiveX-Steuerelemente angesprochen.

Es spielt keine Rollte, ob du die Shapes mit dem Typ oder der Typ-Nummer im Code ansprichst. Beide folgenden Varianten sind deshalb vom Ergebnis her identisch:

Sub Shape_msoBezeichnung()

Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.Type = msoOLEControlObject Then MsgBox shaShape.Name
Next shaShape
End Sub

Sub Shape_TypNummer()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.Type = 12 Then MsgBox shaShape.Name
Next shaShape
End Sub



Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Danke Karin ...
05.11.2023 09:34:29
Dieter(Drummer)
Hallo Karin,

... für deine Infos und Codes. Damit kann ist mich weiter beschäftigen und komme sicher damit weiter.
Sorry für späte Rückmeldung.

Wünsche dir einen schönen Tag und

Gruß, Dieter(Drummer)
Gern geschehen - o.w.T.
05.11.2023 11:00:17
Beverly
Bis später
Karin

Link zur Homepage: https://excel-inn.de/
AW: Alle Shapes markieren aber Commandbuttons nicht
03.11.2023 10:50:01
daniel
Hi
aus einer Selektion wieder abwählen funktioniert nicht.

probierst mal so, hier werden zuerst die Namen der Elemente, die selektiert werden sollen gesammelt und dann über den String selektiert.

Private Sub CommandButton1_Click()

Dim shpe As Shape
Dim txt As String
For Each shpe In ActiveSheet.Shapes
Select Case shpe.Type
Case 12 'commandbutton
Case Else
txt = txt & ";" & shpe.Name
End Select
Next
txt = Mid(txt, 2)
ActiveSheet.Shapes.Range(Split(txt, ";")).Select
End Sub

Gruß Daniel
Anzeige
AW: Danke Daniel ...
03.11.2023 11:17:37
Dieter(Drummer)
Hallo Daniel,

... dein Code funktioniert ebenfalls perfekt.
Ich werde mir alle Codes mal in Ruhe ansehen ...

Danke für Hilfe und einen erfolgreichen Tag,
Dieter(Drummer)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige