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

Shapes nur im selektierten Bereich aktivieren

Shapes nur im selektierten Bereich aktivieren
18.01.2015 20:40:03
Lutz
Hallo Excel-Spezialsisten,
leider habe ich mal wieder ein Problem bei dem mir die Recherche nicht weitergeholfen hat.
Ich möchte einen Bereich manuell selektieren z.B. A1:O6 und dort alle Shapes aktivieren damit ich sie ändern kann.
Ich habe 2 Codes im Internet gefunden die aber beide nicht fuktionieren:
Sub all_ObjekteRange()
Dim objShp As Shape
Dim rng As Range
Set rng = Selection
For Each objShp In ActiveSheet.Shapes
If Not Intersect(objShp.TopLeftCell, rng) Is Nothing Then objShp.Select
Next
Set rng = Nothing
End Sub

Sub all_ObjekteRange2()
Dim oobElement As OLEObject
For Each oobElement In ActiveSheet.OLEObjects
If oobElement.Top > Selection.Top And oobElement.Left > Selection.Left And _
(oobElement.Top + oobElement.Height 
Weiß jemand die Lösung? Wichtig ist, dass am Ende des Makros alle Shapes in dem Bereich selektiert sind und ich sie dann formatieren kann.
Vielen Dank und viele Grüße
Lutz

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

Betreff
Datum
Anwender
Anzeige
AW: Shapes nur im selektierten Bereich aktivieren
18.01.2015 20:56:48
Daniel
HI
die Codes Funktionieren nicht, weil jedes SELECT die alte Selection aufhebt, so dass immer nur ein Objekt selektiert ist, so wie wenn du auf eine neue Zelle klickst.
Wenn du mehrere Zellen selektieren willst, musst du die STRG-Taste beim Klicken gedrückt halten.
In VBA macht man das mit dem zusätzlichen Parameter: objShp.Select FALSE
durch diesen Wert wird dann das neu selektierte Objekt zur bestehenden Selektion hinzugefügt.
Gruß Daniel

AW: Shapes nur im selektierten Bereich aktivieren
18.01.2015 21:04:52
Lutz
Hallo Daniel,
vielen lieben Dank - wieder etwas gelernt!
Ich kann mir jetzt helfen aber vielleicht weiß Du auch darauf eine Antwort:
Ich habe in der Tabelle größer 500 Shapes die ich alle ändern will/muß. Wenn ich alle Shapes aktiviere (den Code kenne ich) und dann rechts clicke um die Textfelder zu ändern dann passiert nichts (das Menü geht nicht auf).
Jetzt bei der Selektion merke ich, dass es bei mehr als ca. 40 Shapes nicht mehr geht. Weißt Du zufällig warum das so ist?
Viele Grüße und vielen Dank
Lutz

Anzeige
AW: Shapes nur im selektierten Bereich aktivieren
18.01.2015 21:27:08
Ralf
Hallo Lutz,
m.M.n ist eine Selektion nicht nötig.
Probiere mal folgenden Code, tipper den mit F8 einzeln durch und schaue dir im Lokalfenster die Eigenschaften an, was man damit alles machen kann.
Über die progID hast du schauen, was es für ein Shape ist.
Gruß
Ralf
Sub test()
Dim shp As Object
For Each shp In Worksheets("Tabelle2").Shapes
Debug.Print shp.Name, shp.OLEFormat.progID
Next
End Sub

AW: Shapes nur im selektierten Bereich aktivieren
18.01.2015 22:30:33
Lutz
Hallo Ralf,
vielen Dank für den Tipp - das funktioniert super.
Viele Grüße Lutz

Korrektur
18.01.2015 22:29:52
Ralf
Hallo Daniel,
ich habe wohl nicht richtig gelesen.
schau es dir nochmal an, vllt hilfts ja.
Gruß
Ralf
Sub test()
Dim shp As Shape
Dim rng As Range
Dim sht As Worksheet
Set sht = Worksheets("Tabelle2")
For Each shp In sht.Shapes
With shp
Debug.Print .Name, .DrawingObject.Object.Caption, .OLEFormat.progID, .TopLeftCell. _
Column, .TopLeftCell.Row
Set rng = Application.Intersect(Selection, sht.Cells(.TopLeftCell.Row, .TopLeftCell. _
Column))
If Not rng Is Nothing Then
MsgBox .Name & " ist in der Selektion"
If InStr(1, .OLEFormat.progID, "button", vbTextCompare) > 0 Then
'wenn button
.DrawingObject.Object.Caption = "Neuer Button Text"
End If
End If
End With
Next
End Sub

Anzeige
AW: Korrektur
18.01.2015 22:51:43
Lutz
Hallo Ralf,
wunderbar, das kann ich auch gut gebrauchen.
Ich wünsche Dir noch einen schönen Abend.
Vielen Dank und viele Grüße
Lutz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige