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

Forumthread: Objekte anzeigen

Objekte anzeigen
07.05.2004 20:37:17
Karl
Hallo Forum,
unten stehende Abfrage bezieht sich auf Zellen, welche dann mehrere Grafiken bei "f" und "NA" ausblenden.
Nun habe ich
1.) das Problem, dass ich zwar durch Case "..." 2 Abfragen auf einmal machen kann, jedoch danach nicht z.B. 2 Objekte auf einmal ausblenden darf.
Und
2.) leider nicht weiss, wie man das "Objekt 18" noch durch Zahlen positioniert. Es sollte z.B. variabel von dem Ereignis "f" etwas weiter rechts, in Abhängigkeit von "NA" etwas weiter links stehen.
Damit nicht genug, zeigt mir der Computer je nach Laune manchmal einen Laufzeitfehler an, aber eben nicht immer, so dass ich da als Anfänger mal wieder überfordert bin.
Vielen Dank !
Kurt
Private Sub Worksheet_Activate()
Select Case Range("H9")
Case "f", "NA"
ActiveSheet.Shapes("Objekt 18").Visible = False
? ActiveSheet.Shapes("Objekt 19").Visible = False
Case Else
ActiveSheet.Shapes("Objekt 18").Visible = True
End Select
Select Case Range("Al9")
Case "f", "NA"
ActiveSheet.Shapes("Objekt 28").Visible = False
Case Else
ActiveSheet.Shapes("Objekt 28").Visible = True
End Select
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekte anzeigen
07.05.2004 20:53:51
Josef
Hallo Karl!
Warum du nicht zwei Shapes hintereinander ausblenden
kannst, kann ich nicht nachvollziehen!
Stimmt der Name des Shapes?
Die Position änderst du mit
ActiveSheet.Shapes("Objekt 18").Left = "der Wert"
Gruß Sepp
AW: Objekte anzeigen
07.05.2004 21:14:47
Karl
Hallo Sepp,
Ja, Shapes stimmt.
Die Anweisung
ActiveSheetShapes("Objekt18).Visible=False nimmt er noch, jedoch die Doppelanweisung
ActiveSheetShapes("Objekt18).Visible=False
ActiveSheetShapes("Objekt19).Visible=False
nicht mehr, er ignoriert immer die zweite Anweisung, d.h. zeigt Objekt 19 und jedes weitere trotzdem an.
Wie kriege ich das mit der Positionierung nochmal hin, kriege da "Kompilierungsfehler"?
ActiveSheetShapes("Objekt18).Left = "10".Visible=True
Danke für die Hilfe !
Kurt
Anzeige
ActiveSheetShapes("Objekt18).Left = 10
07.05.2004 22:47:15
Josef
Hallo Karl (Kurt?)
Also Excel 5.0/7.0 kann ich nicht Testen, aber
das sollte schon funktionieren!
Probier mal
With ActiveSheet
.Shapes("Objekt18").Visible=False
.Shapes("Objekt19").Visible=False
End With
Zur Positionierung.
Das muss so heisen
With ActiveSheet.Shapes("Objekt18")
.Left = 10
.Visible = True
End With
".Left" verlangt natürlich einen numerischen Wert,
also ohne "", und ".Visible = True" muss natürlich in einer
separaten Anweisung geschrieben werden!
Gruß Sepp
Anzeige
AW: ActiveSheetShapes("Objekt18).Left = 10
07.05.2004 23:47:06
Karl
Probier ich morgen gleich aus... War schon um 5 Uhr auf heute
Vielen Dank für die Gedanken !!
LG
Kurt
;
Anzeige
Anzeige

Infobox / Tutorial

Objekte in Excel anzeigen und steuern


Schritt-für-Schritt-Anleitung

Um Objekte in Excel anzuzeigen oder auszublenden, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Wähle das richtige Arbeitsblatt: Doppelklicke auf das Arbeitsblatt, wo Du die Objekte steuern möchtest.

  3. Füge den folgenden Code ein:

    Private Sub Worksheet_Activate()
        Select Case Range("H9")
            Case "f", "NA"
                With ActiveSheet
                    .Shapes("Objekt 18").Visible = False
                    .Shapes("Objekt 19").Visible = False
                End With
            Case Else
                ActiveSheet.Shapes("Objekt 18").Visible = True
        End Select
    
        Select Case Range("A1")
            Case "f", "NA"
                ActiveSheet.Shapes("Objekt 28").Visible = False
            Case Else
                ActiveSheet.Shapes("Objekt 28").Visible = True
        End Select
    End Sub
  4. Anpassen der Position: Um die Position eines Objekts zu ändern, kannst Du den Code wie folgt erweitern:

    With ActiveSheet.Shapes("Objekt 18")
        .Left = 10 ' Setze den Wert ohne ""
        .Visible = True ' Sichtbar setzen
    End With
  5. Speichern und Schließen: Speichere die Änderungen und schließe den VBA-Editor.


Häufige Fehler und Lösungen

  • Fehler beim Ausblenden mehrerer Objekte: Wenn Du mehrere Objekte nicht gleichzeitig ausblenden kannst, stelle sicher, dass die Namen der Shapes korrekt sind. Ein Tipp ist, die Objektnamen in Excel zu überprüfen.

  • Laufzeitfehler: Wenn Du einen Laufzeitfehler erhältst, kann das an einem nicht existierenden Shape-Namen liegen oder an einer falschen Syntax. Stelle sicher, dass Du die Objektnamen genau so schreibst, wie sie in Excel angezeigt werden.

  • Kompilierungsfehler bei Positionierung: Achte darauf, dass Du numerische Werte ohne Anführungszeichen angibst. Zum Beispiel sollte .Left = 10 geschrieben werden, nicht .Left = "10".


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du in Excel auch die Formatierungsoptionen verwenden, um Objekte manuell anzuzeigen oder auszublenden. Hierzu kannst Du die Sichtbarkeit von Objekten über das Kontextmenü (Rechtsklick auf das Objekt) steuern.

Zudem kannst Du auch Makros erstellen, die Du über Schaltflächen in Excel ausführen kannst. Dies ermöglicht eine einfachere Steuerung ohne direkt in den VBA-Editor zu gehen.


Praktische Beispiele

Ein praktisches Beispiel für das Ausblenden von Objekten könnte so aussehen:

Private Sub Worksheet_Activate()
    If Range("A1").Value = "f" Then
        ActiveSheet.Shapes("Objekt 1").Visible = False
        ActiveSheet.Shapes("Objekt 2").Visible = False
    Else
        ActiveSheet.Shapes("Objekt 1").Visible = True
        ActiveSheet.Shapes("Objekt 2").Visible = True
    End If
End Sub

Hierbei wird überprüft, ob der Wert in Zelle A1 "f" ist. Wenn ja, werden die Objekte 1 und 2 ausgeblendet.


Tipps für Profis

  • Objekte gruppieren: Du kannst mehrere Shapes zu einer Gruppe zusammenfassen. Dies erleichtert das gleichzeitige Steuern mehrerer Objekte.

  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlung in Deinem Code, um Laufzeitfehler abzufangen. Beispiel:

    On Error Resume Next
    ActiveSheet.Shapes("Objekt 18").Visible = False
    On Error GoTo 0
  • Verwendung von Variablen: Nutze Variablen zur besseren Lesbarkeit und Wartbarkeit Deines Codes, besonders wenn Du mit vielen Objekten arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich alle Objekte in Excel anzeigen?
Um alle Objekte in einem Arbeitsblatt anzuzeigen, kannst Du den folgenden VBA-Code verwenden:

Dim shp As Shape
For Each shp In ActiveSheet.Shapes
    shp.Visible = True
Next shp

2. Was mache ich, wenn die Objektnamen nicht korrekt sind?
Überprüfe die Namen der Shapes in der Auswahlbox in Excel. Manchmal können Tippfehler oder zusätzliche Leerzeichen die Ursache sein.

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