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

Forumthread: Rechtecke Ein-und Ausblenden

Rechtecke Ein-und Ausblenden
Mate
Liebe VBA Profis,
ich habe ein Problem, welches ich leider nicht lösen kann. Ich möchte beim Klicken auf ein Kommandobutton erreichen, dass beim klicken die Zelle AG 18 den Wert 0 annimmt. Sobald dies passiert ist, sollen die entsprechenden Rechtecke ausgeblendet werden.
Wenn ich nun ein zweites mal auf den gleichen Kommandobutton klicke, soll AG 18 den Wert 1 annehmen und folglich sollen die Rechtecke wieder eingeblendet werden.
Ich schaffe nun den Wechsel zwischen 0 und 1 und vica versa nicht. Könnt Ihr mal schauen, wo der Fehler im Makro ist?
Vielen vielen Dank!!!!
Máté
Sub Vergleich_Neutralwerte()
Application.ScreenUpdating = False
Blattschutz_aus
With Worksheets("Simulation")
ActiveSheet.Range("AG18").Value = Range("AG19").Value
'In AG 19 steht der Wert 0
If Worksheets("Simulation").Range("AG18") = 0 Then
ActiveSheet.Shapes("Rechteck712").Visible = False
ActiveSheet.Shapes("Rechteck713").Visible = False
ActiveSheet.Shapes("Rechteck714").Visible = False
ActiveSheet.Shapes("Rechteck715").Visible = False
ActiveSheet.Shapes("Rechteck716").Visible = False
ActiveSheet.Range("AG18").Value = Range("AG21").Value
'In AG 19 steht der Wert 1
If Worksheets("Simulation").Range("AG18") = 1 Then
ActiveSheet.Shapes("Rechteck712").Visible = True
ActiveSheet.Shapes("Rechteck713").Visible = True
ActiveSheet.Shapes("Rechteck714").Visible = True
ActiveSheet.Shapes("Rechteck715").Visible = True
ActiveSheet.Shapes("Rechteck716").Visible = True
End If
End If
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Rechtecke Ein-und Ausblenden
31.01.2011 12:42:09
Rudi
Hallo,
so?
Sub Vergleich_Neutralwerte()
Application.ScreenUpdating = False
Blattschutz_aus
With Worksheets("Simulation")
.Range("AG18").Value = .Range("AG19").Value
If .Range("AG18") = 0 Then
.Shapes("Rechteck712").Visible = False
.Shapes("Rechteck713").Visible = False
.Shapes("Rechteck714").Visible = False
.Shapes("Rechteck715").Visible = False
.Shapes("Rechteck716").Visible = False
.Range("AG19") = 1
Else
.Shapes("Rechteck712").Visible = True
.Shapes("Rechteck713").Visible = True
.Shapes("Rechteck714").Visible = True
.Shapes("Rechteck715").Visible = True
.Shapes("Rechteck716").Visible = True
.Range("AG19") = 0
End If
End With
End Sub

Gruß
Rudi
Anzeige
AW: Rechtecke Ein-und Ausblenden
31.01.2011 13:19:39
Mate
Vielen vielen Dank Rudi!!! Funktioniert einwandfrei!!
Beste Grüße
Máté
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Rechtecke in Excel ein- und ausblenden mit VBA


Schritt-für-Schritt-Anleitung

Um Rechtecke in Excel ein- und auszublenden, kannst Du folgendes VBA-Makro verwenden. Du musst sicherstellen, dass Du das Makro mit einem CommandButton verknüpfst. Hier ist die Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, wo Du die Rechtecke ein- und ausblenden möchtest.
  2. Klicke auf Entwicklertools und dann auf Visual Basic, um den VBA-Editor zu öffnen.
  3. Füge einen CommandButton hinzu, indem Du auf das Steuerelemente-Menü klickst.
  4. Doppelklicke auf den CommandButton, um den Code-Editor zu öffnen.
  5. Füge folgenden Code ein:
Sub Vergleich_Neutralwerte()
    Application.ScreenUpdating = False
    Blattschutz_aus
    With Worksheets("Simulation")
        .Range("AG18").Value = .Range("AG19").Value
        If .Range("AG18") = 0 Then
            .Shapes("Rechteck712").Visible = False
            .Shapes("Rechteck713").Visible = False
            .Shapes("Rechteck714").Visible = False
            .Shapes("Rechteck715").Visible = False
            .Shapes("Rechteck716").Visible = False
            .Range("AG19").Value = 1
        Else
            .Shapes("Rechteck712").Visible = True
            .Shapes("Rechteck713").Visible = True
            .Shapes("Rechteck714").Visible = True
            .Shapes("Rechteck715").Visible = True
            .Shapes("Rechteck716").Visible = True
            .Range("AG19").Value = 0
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und teste den CommandButton.

Häufige Fehler und Lösungen

  • Fehler: Rechtecke blieben immer sichtbar.

    • Lösung: Überprüfe, ob die Namen der Rechtecke korrekt sind (z.B. "Rechteck712"). Diese müssen exakt im Code übereinstimmen mit den Namen in Excel.
  • Fehler: AG18 wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass in der Zelle AG19 der initiale Wert (0 oder 1) korrekt gesetzt ist, da dieser Wert die Logik des Makros beeinflusst.

Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, kannst Du auch die Bedingte Formatierung in Excel nutzen, um Rechtecke basierend auf einem bestimmten Kriterium ein- oder auszublenden. Diese Methode ist jedoch weniger flexibel und erfordert manuelle Anpassungen.

  1. Wähle die Rechtecke aus.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden" und gib eine passende Formel ein.

Praktische Beispiele

Hier ist ein Beispiel, wie Du das Makro anpassen kannst, wenn Du mehr Rechtecke hast. Du kannst einfach weitere .Shapes("Rechteckxxx").Visible-Zeilen hinzufügen oder in einer Schleife arbeiten:

For i = 712 To 716
    .Shapes("Rechteck" & i).Visible = (Range("AG18") = 1)
Next i

Tipps für Profis

  • Code optimieren: Reduziere die Anzahl der .Shapes-Zugriffe, indem Du die Sichtbarkeit in einer Schleife änderst, wie im obigen Beispiel.
  • Debugging: Nutze Debug.Print im Code, um die Werte von Variablen zur Laufzeit zu überprüfen.
  • Blattschutz: Stelle sicher, dass der Blattschutz korrekt gehandhabt wird, um Fehler zu vermeiden, wenn Du mit geschützten Blättern arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, wenn ich mehr Rechtecke einfügen möchte? Du kannst einfach die Namen der Rechtecke in den .Shapes-Befehlen erweitern oder eine Schleife verwenden, um mehrere Rechtecke zu steuern.

2. Funktioniert dieses Makro in Excel 365? Ja, das Makro sollte in Excel 365 sowie in älteren Versionen funktionieren, solange die VBA-Umgebung korrekt eingerichtet ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige