Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Spalten ausblenden


Betrifft: VBA Spalten ausblenden von: Brachvogel, Kurt
Geschrieben am: 29.06.2017 13:41:15

Hallo, ich bitte um Hilfe, wie ich folgendes Problem lösen kann. Ich möchte abhängig davon, ob in einer bestimmten Zelle etwas steht, mehrere Reihen automatisch ein- bzw. ausblenden. Beispielsweise so:

Zelle D5 im Arbeitsblatt 1 leer, dann Reihe 5-10 in Arbeitsblatt 2 ausblenden
Zelle D6 im Arbeitsblatt 1 leer, dann Reihe 11-15 in Arbeitsblatt 2 ausblenden

bzw. wenn ein Eintrag in Arbeitsblatt 1 in D5 vorliegt, Reihe 5-10 in Arbeitsblatt 2 einblenden. Gleiches für Zelle D6.

Vielen Dank und viele Grüße
Kurt

  

Betrifft: AW: VBA Spalten ausblenden von: Michael (migre)
Geschrieben am: 29.06.2017 14:13:10

Hallo!

Teste folgenden Code; dieser muss in das Modul jenes Tabellenblattes, in dem sich die Eingabezellen D5 und D6 befinden. D.h. Rechtsklick auf den entsprechenden Tabellenblatt-Reiter, Code anzeigen, den Code im VB-Editor-Fenster einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Ws As Worksheet: Set Ws = ThisWorkbook.Worksheets(2)
    With Target
        If .Cells.Count = 1 Then
            Select Case .Address
                Case Is = "$D$5"
                    If .Value = "" Then
                        Ws.Rows("5:10").EntireRow.Hidden = True
                    Else:
                        Ws.Rows("5:10").EntireRow.Hidden = False
                    End If
                Case Is = "$D$6"
                    If .Value = "" Then
                        Ws.Rows("11:15").EntireRow.Hidden = True
                    Else:
                        Ws.Rows("11:15").EntireRow.Hidden = False
                    End If
            End Select
        End If
    End With
    Set Ws = Nothing
End Sub
Achtung: Der Code wirkt aktuell wirklich im 2. Blatt, d.h. im 2. Tabellenblatt-Register von links - wenn das Blatt ein bestimmtes sein soll, und mit seinem Namen bezeichnet werden soll, muss diese Zeile
Dim Ws As Worksheet: Set Ws = ThisWorkbook.Worksheets(2)
zB so lauten:
Dim Ws As Worksheet: Set Ws = ThisWorkbook.Worksheets("Tabelle2")
LG
Michael


  

Betrifft: AW: VBA Spalten ausblenden von: Kurt Brachvogel
Geschrieben am: 29.06.2017 14:45:02

Danke Michael, ich probier es gleich mal aus und melde mich wieder.


  

Betrifft: AW: VBA Spalten ausblenden von: Kurt Brachvogel
Geschrieben am: 29.06.2017 15:35:50

Hallo Michael, vielen Dank, ich hab es ausprobiert. Problem ist nur, dass es nur dann funktioniert, wenn die Eingabefelder,D5 und D6 im gleichen Arbeitsblatt, wie die auszublendenden Reihen sind. Ich habe es mit beiden Schreibweisen probiert.

Gruß Kurt


  

Betrifft: AW: VBA Spalten ausblenden von: Werner
Geschrieben am: 29.06.2017 15:51:18

Hallo Kurt,

der Code muss ins Codemodul des Arbeitsblattes auf dem die Eingaben in die Zellen D5 und E6 erfolgen.

Gruß Werner


  

Betrifft: Dann machst Du etwas falsch... von: Michael (migre)
Geschrieben am: 29.06.2017 15:58:18

Kurt,

...mein Code funktioniert genauso wie beschrieben. Hier auch als Datei für Dich - die kannst Du ja als Vorlage übernehmen, dann klappt's sicher: https://www.herber.de/bbs/user/114585.xlsm

LG
Michael


  

Betrifft: AW: Dann machst Du etwas falsch... von: Kurt Brachvogel
Geschrieben am: 29.06.2017 16:09:52

Stimmt, Deine Vorlage macht genau, was sie soll. Dann kopiere ich die und versuch es nochmal. Ganz, ganz großen Dank nochmal.

Viele Grüße
Kurt


  

Betrifft: Gern! Lg und owT von: Michael (migre)
Geschrieben am: 29.06.2017 16:14:51




Beiträge aus den Excel-Beispielen zum Thema "VBA Spalten ausblenden"