AW: Wenn Bedingung erfüllt Leerzeilen füllen
29.03.2021 11:45:17
Daniel
Hi
das geht auch ohne Schleife:
nur mit berücksichtigung der Wochendenden:
Sub test()
With Range("C1").CurrentRegion
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=IF(Weekday(R1C,2)>5,"""",0)"
.Formula = .Value
End With
End Sub
mit Berücksichtigung der Feiertage mit deiner Vorgabe:
Sub test()
With Range("C1").CurrentRegion
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = _
"=IF(OR(WEEKDAY(R1C,2)>5,COUNTIF(Rng_Feiertage,R1C)),"""",0))"
.Formula = .Value
End With
End Sub
das ganze kann man auch ohne Makro von Hand einfach ausführen.
1. ganze Tabelle markieren (am schnellsten so: linke obere Zelle markieren und STRG+A drücken
2. über Inhalte auswählen (F3 oder START - BEARBEITEN - SUCHEN UND AUSWÄHLEN - INHALTE...) die Selektion auf die Leerzellen einschänken
3. die Formel in eine der selektieren Zellen eingeben (Spalte ggf anpassen, je nachdem wo die Eingabezelle liegt):
=WENN(ODER(WOCHENTAG(D$1;2)>5;ZÄHLENWENN(Rng_Feiertage;D$1));"";0)
und eingabe mit STRG+ENTER abschließen
4. nochmal alle Zellen markieren und über Inhalte auswählen, die Zellen mit Formeln + Text selektieren.
5. diese Zellen leeren
6. ein weiteres mal alle Zellen auswählen, kopieren und als Wert einfügen.
der manuelle Ablauf muss gegenüber dem Makro etwas erweitert werden, weil im Makro mit .Formula = .Value die Texte "" in echte Leerzellen gewandelt werden.
beim Manuellen Inhalte Einfügen - Wert passiert das nicht, da bleiben diese Zellen Text, sehen aber aus wie Leerzellen.
Das kann manchmal probleme bereiten.
Daher dieses vorgehen, damit die Leerzellen an den Wochenenden auch Leerzellen bleiben.
sollten die zu beginn vorhandenen Zahlen auch vollständig oder Teilweise aus Formeln bestehen, so sollte man dieses Verfahren nicht anwenden, da hierbei dann auch diese Formeln in Festwerte gewandelt werden.
Gruß Daniel