Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige