Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Shapes ... Visible = True

Forumthread: Shapes ... Visible = True

Shapes ... Visible = True
05.09.2003 00:19:59
Peter
ich krieg ne, Krise

ich weiß nicht was ich verkehrt mache ?!


Private Sub Workbook_Activate()
auto_open
End Sub

Sub auto_open()
Application.Run "Zeilen"
End Sub

Sub Zeilen()
If Sheets("Liste").Range("K2") = " " Then
ActiveSheet.Shapes("Zeilen").Visible = False
ElseIf Sheets("Liste").Range("K2") = 30 Then
ActiveSheet.Shapes("Zeilen").Visible = True
End If
End Sub


es sollte wenn die Zell K2 leer ist keine Schaltfläche zu sehen sein

wenn in der Zelle K2 der 30 erscheint (durch formel berechnet) soll die Schaltfläche erscheinen ... aber sie tut es einfach nicht.

Gruß Peter
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shapes ... Visible = True
05.09.2003 06:36:29
Hajo_Zi
Hallo Peter

ich bin nun nicht der Fachmann für Steuerelemente in der Tabelle. Aber folgendes ist mir auf gefallen
- Du prüfts K2 auf " " und nicht auf leer
- die Tabelle "Liste" muß aktiv sein ansonsten kommt ein Fehler
- ist der Code an der richtigen Stelle
Private Sub Workbook_Activate() unter DieseArbeitsmapppe und der Rest in ein Modul.

Bei mir läuft der Code Fehlerfrei. Ich habe dem CommandButton aus der Steuerelemente Toolbox en Namen "Zeilen" gegeben.


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sichtbarkeit von Shapes in Excel mit VBA steuern


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsx)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Workbook_Activate()
       auto_open
    End Sub
    
    Sub auto_open()
       Application.Run "Zeilen"
    End Sub
    
    Sub Zeilen()
       If Sheets("Liste").Range("K2") = " " Then
           ActiveSheet.Shapes("Zeilen").Visible = False
       ElseIf Sheets("Liste").Range("K2") = 30 Then
           ActiveSheet.Shapes("Zeilen").Visible = True
       End If
    End Sub
  4. Achte darauf, dass deine Tabelle "Liste" aktiv ist, wenn der Code ausgeführt wird.

  5. Stelle sicher, dass der Name deines Shapes (z.B. "Zeilen") korrekt ist und dass du die richtige Excel-Version verwendest.


Häufige Fehler und Lösungen

  • Problem: Der Shape wird nicht sichtbar, obwohl K2 den Wert 30 hat.

    • Lösung: Überprüfe, ob der Name des Shapes korrekt ist. Es muss exakt "Zeilen" sein.
  • Problem: Die Prüfung auf leere Zelle funktioniert nicht.

    • Lösung: Stelle sicher, dass du nicht auf " " prüfst, sondern direkt auf IsEmpty(Sheets("Liste").Range("K2").Value).
  • Problem: Der Code wird nicht im richtigen Kontext ausgeführt.

    • Lösung: Der Private Sub Workbook_Activate() sollte in "DieseArbeitsmappe" und nicht in einem allgemeinen Modul stehen.

Alternative Methoden

Eine alternative Methode, um die Sichtbarkeit von Shapes zu steuern, ist die Verwendung von Formeln in Excel selbst. Du könntest beispielsweise die WENN-Funktion in Kombination mit einem benannten Bereich verwenden, der die Sichtbarkeit steuert.

=WENN(K2=30; "Sichtbar"; "Unsichtbar")

Dann kannst du mit VBA auf diesen benannten Bereich zugreifen und die Sichtbarkeit deines Shapes entsprechend anpassen.


Praktische Beispiele

Angenommen, du hast einen CommandButton, der auf einem Arbeitsblatt eingefügt ist. Du möchtest, dass dieser Button nur sichtbar ist, wenn der Wert in Zelle K2 30 ist. Der oben angegebene VBA-Code erfüllt genau dieses Ziel. Stelle sicher, dass du die richtige Excel-Version verwendest, um Kompatibilitätsprobleme zu vermeiden.


Tipps für Profis

  • Nutze With-Anweisungen, um deinen Code effizienter zu gestalten:

    With ActiveSheet.Shapes("Zeilen")
       .Visible = Not IsEmpty(Sheets("Liste").Range("K2").Value) And Sheets("Liste").Range("K2").Value = 30
    End With
  • Dokumentiere deinen Code gut, um die Wartung zu erleichtern, insbesondere wenn du mit mehreren Shapes arbeitest.


FAQ: Häufige Fragen

1. Warum wird mein Shape nicht angezeigt, wenn K2 den Wert 30 hat?
Überprüfe, ob der Name des Shapes exakt übereinstimmt und ob der Code im richtigen Modul platziert ist.

2. Gibt es eine Möglichkeit, Shapes basierend auf anderen Zellwerten sichtbar zu machen?
Ja, du kannst die Bedingungen in der Sub Zeilen()-Prozedur anpassen, um verschiedene Zellwerte zu berücksichtigen.

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