Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehrere Objekte gleichzeitig sichtbar

Forumthread: mehrere Objekte gleichzeitig sichtbar

mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:21:06
Kerstin
Hallo zusammen!
Gibt es eine Möglichkeit, mehrere Objekte gleichzeitig sichtbar bzw. unsichtbar zu machen, ohne sie einzeln anzusprechen?
z.B. so in der Art:
Sheets("Autoren_und_Titelliste").Shapes.Range(Array("Objekt 1 : Objekt 10")).Visible = False
klappt natürlich nicht...
Hat jemand eine Idee?
(Im Netz finde ich nur ... Objekt 1, Objekt 2, Objekt 3 usw. Also Einzelaufzählung, die ich irgendwie vermeiden möchte)
VG
Kerstin
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:30:00
MRUTOR
Hallo Kerstin,
wenn die ObjeKte fortlaufend durchnummeriert sind, kannst du das mit einer Schleife machen:

Dim ShapeZähler As Long
For ShapeZähler = 1 To Sheets("Autoren_und_Titelliste").Shapes.Count
ActiveSheet.Shapes(ShapeZähler).Visible = False
Next ShapeZähler

Gruss Tor
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:34:56
Kerstin
Hallo Tor!
Danke für Deine schnelle Antwort!
Die Objekte, die unsichtbar werden sollen, haben alle den gleichen Namen und sind durchnummeriert. Allerdings gibt es noch ein paar Objekte auf dem Tabellenblatt, die einen anderen Namen haben. Die sollen aber immer sichtbar bleiben.
VG Kerstin
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:33:53
EtoPHG
Hallo,
Ich weiss ja nicht, was die Bedingungen für das sichtbar, bzw. unsichtbar machen deiner Shapes sind.
Wenn die Bedingung z.B. eine bestimmter zusammenhängender Zellenbereich ist, könnte in einem Loop über alle Shapes festgestellt werden, ob diese darin liegen und nur dann die Eigenschaft gesetzt werden. Für deinen Ansatz (bzw. der Aufzählung aller) gibt es IMHO keine Alternative als eine Iteration über die Objekte.
Gruess Hansueli
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:41:52
Kerstin
Hallo Hansueli!
Bedingung ist:
If Range("A1") = "" then
Sheets("Autoren_und_Titelliste").Shapes.Range(Array("Objekt 1")).Visible = False
....
Das gilt z.B. für Range A1 bis A10.
Das Problem ist aber, daß mal A1 bis A3 leer ist, dann wieder mal A7-A10 etc.
VG Kerstin
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:49:59
EtoPHG
Hallo,
Das sagt mir noch nicht in welchem Tabellenblatt deine "A1..A10" liegen. Offensichtlich wäre es bedeutend einfacher eine kleine Beispielmappe mit einer Beschreibung hochzuladen, als hier einen ewig dauernden 'Würmer aus der Nase ziehen'-Dialog zu starten.
Gruess Hansueli
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:54:09
Kerstin
Hallo Hansueli,
liegt alles im selben Tabellenblatt: Sheets("Autoren_und_Titelliste")
Ich weiß nicht warum, aber hochladen klappt nicht.... ich arbeite mit einem Mac, da scheint es wohl Probleme zu geben...
VG Kerstin
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:53:00
MRUTOR
Hallo Kerstin,
dann so:

Sub test()
Dim ShapeZähler As Long
For ShapeZähler = 1 To 10
If Sheets("Autoren_und_Titelliste").Range("A" & ShapeZähler) = "" Then
Sheets("Autoren_und_Titelliste").Shapes(ShapeZähler).Visible = False
Else
Sheets("Autoren_und_Titelliste").Shapes(ShapeZähler).Visible = True
End If
Next ShapeZähler
End Sub

Gruss Tor
Anzeige
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 11:03:14
Kerstin
@ Tor:
Super! Klappt!
Danke seeeeehr!!!
VG Kerstin
gerne...
29.07.2020 11:09:02
MRUTOR
und danke fuer die Rueckmeldung
AW: mehrere Objekte gleichzeitig sichtbar
29.07.2020 10:34:26
ChrisL
Hi
Hier noch eine andere Idee, aber letztlich ist es auch eine Schleife
Sub t()
Sheets("Autoren_und_Titelliste").Shapes.Range(MachArray("Objekt ", 1, 10)).Visible = False
End Sub

Private Function MachArray(strText As String, intVon As Integer, intBis As Integer) As Variant
Dim i As Integer
ReDim MyArray(0) As Variant
For i = intVon To intBis
If i  intVon Then ReDim Preserve MyArray(UBound(MyArray) + 1)
MyArray(UBound(MyArray)) = strText & i
Next i
MachArray = MyArray
End Function
cu
Chris
Anzeige
;

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