Microsoft Excel

Herbers Excel/VBA-Archiv

Mit VBA Spalten ein- /ausblenden


Betrifft: Mit VBA Spalten ein- /ausblenden von: Stefan
Geschrieben am: 23.10.2019 16:00:42

Hallo liebes Forum,


ich bin gerade etwas am Verzweifeln.


Ausgangssituation:


Ich habe eine Excel Datei erstellt.(Spalte A:Z)

In der ich nun per VBA (ich bin absoluter Anfänger) bestimmte Spalten ein und ausblenden will.

Je nach dem was in Zelle B2 steht..

In Worten:

Wenn in B2 "Agenda" steht, dann zeige mir die Spalten A:M und T:X

Wenn in B2" PROTOKOLL" steht, dann zeige mir die Spalten A:M und N:R


Ich lade einen Dateiversuch mit hoch.

https://www.herber.de/bbs/user/132694.xlsx


Der VBA Code lautet bisher

Private Sub Worksheet_Change(ByVal Target As Range)

    ' Ist die Aktion überhaupt nötig (Änderung in "B2") ?
    If Target.Address = "$B$2" Then
    
        ' Nimm den Wert des geänderten Bereiches
        Select Case Target.Value
        
            ' Vergleiche mit ZAHL, nicht String
            Case Agenda
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten n:r aus
                Columns("n:r").EntireColumn.Hidden = True
            
            Case Protokoll
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten t:x aus
                Columns("t:x").EntireColumn.Hidden = True
            
        End Select
    
        ' Setze den Cursor zurück auf "B2"
        Target.Select

    End If
    
End Sub


Sub M()


End Sub
Kann mir jemand helfen??

  

Betrifft: AW: Mit VBA Spalten ein- /ausblenden von: Armin
Geschrieben am: 23.10.2019 16:17:20

Hallo,
so:

Private Sub Worksheet_Change(ByVal Target As Range)

    ' Ist die Aktion überhaupt nötig (Änderung in "B2") ?
    If Target.Address = "$B$2" Then
    
        ' Nimm den Wert des geänderten Bereiches
        Select Case UCase(Target.Value) 'Ucase ist zwar nicht zwingend aber halt  _
vorsichtshalber
        
            ' Vergleiche mit ZAHL, nicht String
            Case "AGENDA"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten n:r aus
                Columns("n:r").EntireColumn.Hidden = True
            
            Case "PROTOKOLL"
                ' Blende alle Spalten ein
                ActiveSheet.Columns.Hidden = False
                ' Blende Spalten t:x aus
                Columns("t:x").EntireColumn.Hidden = True
            
        End Select
    
        ' Setze den Cursor zurück auf "B2"
        Target.Select

    End If
    
End Sub
Gruß Armin


  

Betrifft: AW: Mit VBA Spalten ein- /ausblenden von: Werner
Geschrieben am: 23.10.2019 16:23:28

Hallo Stefan,

so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "B2" Then
    Columns.Hidden = False
    Columns("M:Q").Hidden = Target = "AGENDA"
    Columns("R:V").Hidden = Target = "PROTOKOLL"
    Columns("X:X").Hidden = Target = "PROTOKOLL"
End If
End Sub
Gruß Werner


  

Betrifft: AW: Mit VBA Spalten ein- /ausblenden von: Stefan
Geschrieben am: 23.10.2019 17:32:53

juhu funktioniert.
besten Dank :-)


  

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T. von: Werner
Geschrieben am: 23.10.2019 18:39:52




Beiträge aus dem Excel-Forum zum Thema "Mit VBA Spalten ein- /ausblenden"