Hier anmelden!

Willkommen bei Excellent

Makro zum Aus- und Einblenden von Zeilen Wenn der Wert in einer zelle ...

Beitrag verlinken am 27.01.2011 geschrieben
  • nach oben

Hallo Liebe Mitglieder ich habe folgendes Problen ich möchte eine aktive Chekliste bauen. Diese soll mit Formularsteuerelementen "Kontrollkästchen" aufgabaut werden. die Aktivierung des Kontrollkästchens bezieht sich auf die zelle z.B: D7 (bei aktivem Kontrollkästchen entspricht die Zelle D7 = WAHR) --> jetzt sollen die Zeilen 8-12 eingeblendet werden, sowie bei deaktivierung des Kontrollkästchens wieder ausgeblendet.

Danke im Voraus für die Hilfe

Marcel Algne

Beitrag verlinken am 29.01.2011 geschrieben
  • nach oben

Hallo Marcel,
Excel muss auf eine Änderung der Checkboxinhaltes reagieren. Dazu erstellst Du die folgende VBA-Prozedur in dem Code-Bereich des Blattes, auf dem die Checkbox liegt:

Private Sub CheckBox1_Change()
  If Range("D7") Then
    Rows("8:12").EntireRow.Hidden = False
  Else
    Rows("8:12").EntireRow.Hidden = True
  End If
End Sub

Wenn Du der Checkbox einen anderen Namen gegeben hast, dann muss Checkbox1 im Prozedurkopf entsprechend angepasst werden. Wenn nicht immer die festen Zeilen 8:12 aus-/eingeblendet werden sollen, dann lässt sich das auch dynamisch gestalten.

Weitere Fragen? Gerne!

Gruß aus dem sonnigen Spessart - Dirk

Beitrag verlinken am 29.01.2011 geschrieben
  • nach oben

Hallo Dirk-Lothar Dr. Hornauer

erstmals Danke für den Tip funktioniert optimal, aber vielleicht können Sie mit noch sagen wie die ganze Sache dynamisch geht?

Danke nochmals

MFG

Marcel Algner

Beitrag wurde am 29.01.2011 vom Verfasser bearbeitet
Beitrag verlinken am 17.02.2011 geschrieben
  • nach oben

Hallo Marcel,
entschuldige, dass ich erst jetzt reagieren kann.

Nehmen wir an, dass es auf dem Blatt "Tabelle1" 3 Checkboxen mit den Namen Checkbox1, Checkbox2 und Checkbox3 gibt. Die verknüpften Zellen liegen auf dem Blatt "Parameter". Dies sind B1, B2 und B3. In den Zellen C1, C2 und C3 steht jeweils die erste Zeile des Bereiches, der ausgeblendet werden soll, und in D1, D2 und D3 steht jeweils die letzte Zeile des auszublendenden Bereiches. Beispiel: C1=10, D1=15 bedeutet, dass die Zeilen 10-15 ausgeblendet werden, wenn die Checkbox1 deaktiviert ist.

Im VBA-Code zum Blatt "Tabelle1" stehen die drei Change-Prozeduren zu den drei Checkboxen:

Private Sub CheckBox1_Change()
 Call HideRows(1)
End Sub

Private Sub CheckBox2_Change()
 Call HideRows(2)
End Sub

Private Sub CheckBox3_Change()
 Call HideRows(3)
End Sub

In einem Modul steht die Prozedur zum Aus-/Einblenden von Zeilenbereichen, die vollständig parametrisiert ist:

Sub HideRows(i As Integer)
  Dim strRowRange As String

  With Worksheets("Parameter")
    strRowRange = .Cells(i, 3).Value & ":" & .Cells(i, 4).Value
  If .Cells(i, 2).Value Then
    Rows(strRowRange).EntireRow.Hidden = False
  Else
    Rows(strRowRange).EntireRow.Hidden = True
  End If
  End With
 
End Sub

Das lässt sich natürlich auf beliebig viele Checkboxen erweitern.

Viel Erfolg - Dirk

  • Statistiken: 4 Beiträge | 102 Aufrufe

Hier anmelden

Du bist noch kein Mitglied der Community?

Community-Details

  • Suche nach:

  • Community-Name

    Excellent
    Die Excel-Community von ExcelDaily

  • Dein Gastgeber ist

    Martin Althaus

  • Online seit

    17.03.2008

  • Mitglieder

    454

  • Sprache

    Deutsch

powered by mixxt
  • v1.1.1
  • (highfive)