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

Forumthread: dynamisch Spalten ein- und ausblenden

dynamisch Spalten ein- und ausblenden
10.08.2021 15:33:48
Davidina11
Hallo,
ich habe hier im Forum Codeschnipsel für meine Aufgabe gefunden, aber leider funktioniert es noch nicht richtig.
Ich habe eine Jahresliste (pro Tag eine Spalte) mit Kalenderwochen. Und über einen Eintrag in B4 möchte ich nur die diejenigen Spalten angezeigt bekommen, die in der angegebenen Kalenderwoche liegen, z.B. Eingabe "3" in B4 soll mir alle Tage der KW3 anzeigen und den Rest ausblenden. Leider werden keine Spalten ein- bzw. ausgeblendet.. Der Code ist im richtigen Kalenderblatt hinterlegt und das Target wird auch angesprochen (per Test blau gefärbt).
Woran kann das liegen?
Schöne Grüße
Davidina11
So sieht die Datei aus:
Userbild

Sub Worksheet_Change(ByVal Target As Range)
' Ziel: Kalenderwoche in B4 eingeben und dann wird nur ausgewählte KW angezeigt, alle anderen ausgeblendet
Dim rngZelle As Range, strAdr As String
Target.Font.ColorIndex = 5 'zum Testen, funktioniert
If Not Intersect(Target, [B4]) Is Nothing Then      'Wenn Eingabe in B4 erfolgte
If [B4].Value = "" Then                         'Wenn B4 gelöscht wurde
Cells.Columns("C:NJ").Hidden = False                'Alle Spalten wieder einblenden
Else                                            'Ansonsten :
Cells.Columns("C:NJ").Hidden = True          'Alle Spalten zunächst ausblenden
Columns("C:NJ").Hidden = False               'Spalten C:NJ wieder einblenden
With Rows(5)                                'Suche Wert in kompletter Zeile 5
Set rngZelle = .Find([B4].Value, lookat:=xlWhole) 'Suche nach Wert der Zelle B4
If Not rngZelle Is Nothing Then strAdr = rngZelle.Address
While Not rngZelle Is Nothing
rngZelle.EntireColumn.Hidden = False 'Spalte mit gefundenem Wert einblenden
Set rngZelle = .FindNext(after:=rngZelle)   'Weitersuchen
If rngZelle.Address = strAdr Then Set rngZelle = Nothing
Wend
End With
End If
End If
Set rngZelle = Nothing
End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamisch Spalten ein- und ausblenden
10.08.2021 17:31:38
Nepumuk
Hallo,
lösch die Zeile:

Columns("C:NJ").Hidden = False               'Spalten C:NJ wieder einblenden
Gruß
Nepumuk
AW: dynamisch Spalten ein- und ausblenden
10.08.2021 17:37:41
GerdL
Hallo,
ich fasse zusammen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "B4" Then
With Range("C5:NJ5")
.EntireColumn.Hidden = False
Select Case Target
Case 1 To 53: .RowDifferences(.Find(Target)).EntireColumn.Hidden = True
End Select
End With
End If
End Sub
Gruß Gerd
Anzeige
AW: dynamisch Spalten ein- und ausblenden
12.08.2021 13:20:44
Davidina11
Danke für die Antworten.
Ich habe die Version von GerdL benutzt, erhalte dann allerdings die folgende Fehlermeldung:
Laufzeitfehler 5: "Ungültiger Prozeduraufruf oder ungültiges Argument"
Beim Debuggen springt er zu "Case 1:53".
Was kann ich da tun?
Schöne Grüße
Davidina11
Anzeige
AW: dynamisch Spalten ein- und ausblenden
12.08.2021 14:33:00
GerdL
Ich kann den Fehler mit Trockenübungen nicht wiederholen.
Kannst du bitte eine Beispieltabelle mit dem von dir benutzten Code hochladen, bei der der Fehler auftritt.
Gruß Gerd
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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