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

Forumthread: Wenn ein sonntag dann ausblenden

Wenn ein sonntag dann ausblenden
26.03.2005 13:18:23
Ralf
Hallo Profis
Ich habe da ein anliegen und zwar möchte ich ein stundenzettel erstellen, wo der Sonntag automatisch augeblendet wird.
Die Tabelle sieht bei mir so aus in D2 habe ich das datum stehen z.B.
01.01.2005 und in der spalte B8 steht Dann =D2 und in A8 steht bei mir
=Wochentag(B8) jetzt möchte ich das wenn der Tag ein Sonntag ist das die Spalten für den Sonntag ausgeblendet weden.
hier zum ansehen
https://www.herber.de/bbs/user/20177.xls
Mfg Ralf
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 14:04:00
Vico
Hallo Ralf,
habe Deine Angaben nachvollzogen.
Bekomme bei der Formel =Wochentag(B8)das Ergebnis 7 heraus, was dem "Sonntag" entsprechen
duerfte. Versuch es doch mal mit =WENN((WOCHENTAG(B8)=7);"";WOCHENTAG(B8)) statt mit
=Wochentag(B8).
AW: Wenn ein sonntag dann ausblenden
26.03.2005 14:32:49
Ralf
Hallo Vico
irgendwie funktioniert das bei mir nicht kann das damit zusammenhängen das der sonntag mehrere zellen hat also die verbunden sind. also im Jannuar wäre das spalte 14 - 19 beim ersten sonntag.
Vielleicht sollte ich noch erwähnen das die ganzen spalten gelöscht werden sollen also von 14 - 19 .
ich dachte ungefähr so
wenn spaalte 14-19 = Sonntag dann löschen spalte 14-19
oder so ähnlich
bin da aber nur ein anfänger
gruß Ralf
Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 14:40:35
ransi


      
hallo ralf
dieser dreizeiler blendet dir die zeilen aus 
in denen in Spalte a "  Sonntag" steht.
Option 
Explicit
Public Sub test()
Dim zelle As Range
For Each zelle In Range("a1:a200")'ggf noch anpassen
    If zelle.Text = "  Sonntag" Then Rows(zelle.Row & ":" & zelle.Row + 5).Hidden = True
Next
End Sub
habe allerdings aus deiner frage nicht ersehen können  wann  das passieren soll?
Musst dir also das passende ereigniss noch einstellen.
ransi 


Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 14:50:41
Ralf
Hallo ransi
ich habe deine Formel in einer autoform intregriert klappt auch wunderbar aber was muss ich machen wenn das automatisch passieren soll ohne ihrgend eine autoform zu drücken
also beim öffnen der arbeitsmappe kann ich leider nicht leine

Sub AutoForm2_BeiKlick()
Dim zelle As Range
For Each zelle In Range("a1:a200") 'ggf noch anpassen
If zelle.Text = "  Sonntag" Then Rows(zelle.Row & ":" & zelle.Row + 5).Hidden = True
Next
End Sub

mfg
Ralf
Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 15:02:35
ransi


      
hallo ralf
rechte maus auf einen tabellenreiter
code anzeigen...
dann geht ein neues fenster auf.
links ist so eine art explorer
doppelclick auf DieseArbeitsmappe
da dann diesen code rein.
Option 
Explicit
Private Sub Workbook_SheetChange(ByVal Sh As ObjectByVal Target As Range)
Dim zelle As Range
If Target.Address = "$D$2" Then
    
For Each zelle In Range("a1:a200"'ggf noch anpassen
        If zelle.Text = "  Sonntag" Then Rows(zelle.Row & ":" & zelle.Row + 5).Hidden = True
    
Next
End If
End Sub
 
der code macht folgendes:
sobald du auf irgendeinem blatt die zelle D2 änderst wird 
in dem aktuellen blatt jede zeile ausgeblendet die
in A "  Sonntag" hat.
ransi 


Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 15:10:10
Ralf
herforragend Danke
tja wenn man erst mal angefangen ist möchte mann noch mehr vielleicht kannst Du mir ja auch dabei Helfen.
Und zwar möchte ich das bei jedem Montag ein Seitenwechsel eingefügt wird also wenn ich Drucke das immer nur 1 Arbeitswoche auf einem Blatt erscheint.
mfg
ralf
Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 16:06:57
Peter
Servus,
So funzt beides.

Sub worksheet_selektion_change()
For i = 8 To 188 Step 6
If Cells(i, 1) = 1 Then
Range(Cells(i, 1), Cells(i + 5, 1)).EntireRow.Hidden = True
Else
Range(Cells(i, 1), Cells(i + 5, 1)).EntireRow.Hidden = False
End If
If Cells(i, 1) = 2 Then
PrintTitleRows = "$7:$7"
PrintTitleColumns = Range(Cells(i, 1), Cells(i + 5, 1))
End If
Next i
End Sub

MfG
Peter
Anzeige
AW: Wenn ein sonntag dann ausblenden
26.03.2005 14:28:01
Björn
Hallo Ralf,
Für Tabelle Jan wäre folgender Code im Modul von Tabelle1(Jan) einzutragen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then
For i = 8 To 188 Step 6
If Cells(i, 1) = 1 Then
Range(Cells(i, 1), Cells(i + 5, 1)).EntireRow.Hidden = True
Else
Range(Cells(i, 1), Cells(i + 5, 1)).EntireRow.Hidden = False
End If
Next i
End If
End Sub

Der Code funktioniert auch für die Tabelle Feb, wenn du das Layout an Tabelle Jan anpasst (ab Zeile 6 hast du da eine Abweichung).
Gruß
Björn
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sonntag in Excel automatisch ausblenden


Schritt-für-Schritt-Anleitung

Um den Sonntag in Excel automatisch auszublenden, kannst Du folgende Schritte befolgen:

  1. Datum eingeben: Trage in Zelle D2 das Datum ein, z.B. 01.01.2005.
  2. Wochentag ermitteln: In Zelle B8 kannst Du die Formel =D2 verwenden, um das Datum anzuzeigen.
  3. Wochentag-Funktion: In Zelle A8 schreibe die Formel =Wochentag(B8), um den Wochentag zu ermitteln.
  4. Sonntag ausblenden: Verwende die folgende Formel in einer neuen Zelle:
    =WENN(WOCHENTAG(B8)=7;"";B8)

    Diese Formel zeigt nichts an, wenn der Wochentag ein Sonntag ist.

  5. VBA-Code für automatisches Ausblenden: Öffne den VBA-Editor (Alt + F11) und füge den folgenden Code in das Modul „DieseArbeitsmappe“ ein:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
       If Target.Address = "$D$2" Then
           Dim zelle As Range
           For Each zelle In Range("A1:A200")
               If zelle.Value = "Sonntag" Then
                   Rows(zelle.Row & ":" & zelle.Row + 5).Hidden = True
               End If
           Next zelle
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Die Formel =Wochentag(B8) ergibt nicht das erwartete Ergebnis.

    • Lösung: Stelle sicher, dass das Datum in B8 korrekt formatiert ist. Die Wochentag-Funktion sollte 7 für Sonntag zurückgeben.
  • Fehler: Die Spalten werden nicht ausgeblendet.

    • Lösung: Überprüfe, ob die Zellen korrekt verbunden sind. VBA kann Schwierigkeiten mit verbundenen Zellen haben.

Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, kannst Du auch bedingte Formatierungen nutzen:

  1. Bedingte Formatierung: Wähle die Zellen aus, die Du einfärben möchtest, und gehe zu „Start“ > „Bedingte Formatierung“.
  2. Neue Regel erstellen: Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib die Formel =WOCHENTAG(A1)=7 ein.
  3. Format auswählen: Wähle eine Füllfarbe für den Sonntag.

Mit dieser Methode kannst Du die Sonntage in der Tabelle automatisch einfärben, anstatt sie auszublenden.


Praktische Beispiele

  • Beispiel 1: Wenn Du eine Liste von Arbeitsstunden hast und nur die Wochentage anzeigen möchtest, benutze die oben beschriebenen Formeln, um alle Sonntage auszublenden.
  • Beispiel 2: Um die Zeilen für alle Samstage und Sonntage in einem Monat zu verstecken, passe den VBA-Code an, um sowohl 7 (Sonntag) als auch 6 (Samstag) zu berücksichtigen.

Tipps für Profis

  • Automatisierung: Um die Automatisierung zu verbessern, kannst Du den VBA-Code so anpassen, dass er beim Öffnen der Datei ausgeführt wird.
  • Testen auf Fehler: Teste Deinen Code regelmäßig, um sicherzustellen, dass er in verschiedenen Arbeitsblättern und mit unterschiedlichen Daten funktioniert.
  • Dokumentation: Füge Kommentare zu Deinem VBA-Code hinzu, um die Nachvollziehbarkeit zu erhöhen und anderen Nutzern zu helfen, den Code zu verstehen.

FAQ: Häufige Fragen

1. Wie kann ich auch Samstage ausblenden? Um Samstage auszublenden, musst Du den VBA-Code so anpassen, dass er auch auf 6 prüft.

2. Funktioniert das in jeder Excel-Version? Ja, die beschriebenen Methoden und Codes sollten in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige