Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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

Datenreihe | Herbers Excel-Forum

Datenreihe
10.01.2010 18:35:55
Volker

Einen schönen Sonntag zusammen,
ich habe hier mal eine Mappe hochgeladen, welche mir mal wieder Kopfzerbrechen bereitet.
https://www.herber.de/bbs/user/67115.xls
In die Spalten A + B soll das Datum eingefügt werden. In Spalte A als Wochentag in Spalte B als reguläres Datum. (Wobei diese Formatierung für Spalte A nur das sekundäre Problem ist).
Ich möchte das nach dem letzen eines Monats (Januar bis einschließlich November) eine Leerzeile eingefügt wird. Nun das geht auch über die vielen if / then Anweisungen. Vieleicht nicht elegant, aber funktioniert. Jetzt bereitet mir aber der Februar in einem Schaltjahr Probleme.
Ich hab schon versucht das mit der Funktion IstSchaltjahr zu lösen, aber... war wohl nichts.
Könnte mir jemand sagen wie ich die Fehler beseitige?
Danke und Gruß
Volker

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenreihe
10.01.2010 18:41:29
Mister B
Hallo,
ein Schaltjahr ermittelt man mit:
If (Year(Date) Mod 4) Then
Gruß
Martin
AW: Datenreihe
10.01.2010 18:58:14
Volker
Hallo Martin,
Danke für Deine Antwort,
ich habe Versucht den Code bei den ganzen if / then Anweisungen unterzubringen, funktioniert aber nicht.
Excel mäkelt "next ohne for".
Danke Gruß
Volker
If Not CBool(Year..., aber nur im Julianischen...
10.01.2010 18:58:38
Luc:-?
...Kalender, Martin;
wir verwenden aber schon seit Jhdd den Gregorianischen... Allerdings spielt dass nur bei Rückwärtsdatierung eine und ansonsten in den nächsten 390 Jahren keine Rolle... ;-)
Gruß Luc :-?
AW: If Not CBool(Year..., aber nur im Julianischen
10.01.2010 19:04:41
Volker
Hallo Luc :-?
Ich verstehe nur Bahnhof......
Gruß
Volker
Anzeige
WIKIPEDIA!!! owT
10.01.2010 19:16:57
Luc:-?
:-?
Allerdings wäre der Gültigkeitszeitraum...
10.01.2010 19:32:42
Luc:-?
...für diese Methode 109 Jahre rückwärts und nur 89 Jahre vorwärts (nicht 390!) gewesen, also von 1901 bis 2099... Sorry!
Luc :-?
andersrum
10.01.2010 19:03:29
Matthias L
Hallo
Du meinst kein Schaltjahr ermittelt man mit
If (Year(Date) Mod 4) Then ... ;o)
Gruß Matthias
AW: so einfach ist das mit dem Schaltjahr nicht
10.01.2010 19:23:06
Daniel
weils da doch Ausnahmen und Ausnahmen von der Ausnahme gibt (ist gar nicht so lang her).
die einfachste Methode dürfte sein (unter der Annahme, das MS die Sonderfälle berücksichtigt hat), zu schauen, welchen Wert die Funktion
Day(DateSerial(2012,3,0)) hat.
kommt 29 raus, ist 2012 ein Schaltjahr, ist das Ergebnis 28, dann ist es keins.
Gruß, Daniel
Anzeige
In VBA ist alles "Gregor", Daniel! ;-) owT
10.01.2010 19:35:19
Luc:-?
:-?
AW: Datenreihe
10.01.2010 19:15:26
Daniel
Hi
weiß nicht, ein Makro ist sehr aufwendig, im Prinzip lässt sich das ganze doch über eine Formel lösen.
das ganze ist so schnell, daß es keinen Fortschrittsbalken braucht.
Sub NeuesJahr()
Dim Anz As Long
Dim dat1 As Date, dat2 As Date
dat1 = DateSerial(Cells(1, 2), 1, 1)
dat2 = DateSerial(Cells(1, 2) + 1, 1, 1)
'Anzahl Tage ermitteln (Schaltjahr-Test)
Anz = dat2 - dat1 + 11
'Kalender einfügen, erster Tag fix, rest über Formel
Cells(3, 1).Resize(1, 2).Value = dat1
With Cells(4, 1).Resize(Anz - 1, 2)
.FormulaR1C1 = _
"=IF(R[-1]C="""",R[-2]C+1,IF(R[-1]C=DATE(YEAR(R[-1]C),MONTH(R[-1]C)+1,0),"""",R[-1]C+1))"
.Formula = .Value
End With
'Datumsformat festlegen
Cells(3, 1).Resize(Anz, 1).NumberFormat = "DDDD"
Cells(3, 2).Resize(Anz, 1).NumberFormat = "DD.MM.YYYY"
'Färben, Farbindex und Spaltennummer für Hilfsspalte ggf anpassen
With Cells(3, 3).Resize(Anz, 1)
.FormulaR1C1 = "=IF(RC2="""",False,IF(ISEVEN(RC2),1,""x""))"
Intersect(Range("A:B"), .SpecialCells(xlCellTypeFormulas, 1).EntireRow).Interior.ColorIndex = 3
Intersect(Range("A:B"), .SpecialCells(xlCellTypeFormulas, 2).EntireRow).Interior.ColorIndex = 5
.ClearContents
End With
End Sub
Gruß, Daniel
Anzeige
AW: Datenreihe
10.01.2010 20:02:09
Volker
Hallo Danioel,
Danke für Deine Antwort,
funktioniert soweit, allerdings wird ein Fehler angezeigt: "Kein Zellen gefunden".
Die Zeile mit colorindex=3 wird hinterlegt. Ich vermute das ist eine Einstellungssache, nur ich weis nicht was ich veändern muss.
Die farbliche Hinterlegung soll nur für die Spalten A + B gelten.
Weitere Frage: Was ist " ISEVEN "? Habe in der Recherche nichts gefunden.
Danke und Gruß
Volker
AW: Datenreihe
10.01.2010 20:02:56
Volker
Hallo Danioel,
Danke für Deine Antwort,
funktioniert soweit, allerdings wird ein Fehler angezeigt: "Kein Zellen gefunden".
Die Zeile mit colorindex=3 wird hinterlegt. Ich vermute das ist eine Einstellungssache, nur ich weis nicht was ich veändern muss.
Die farbliche Hinterlegung soll nur für die Spalten A + B gelten.
Weitere Frage: Was ist " ISEVEN "? Habe in der Recherche nichts gefunden.
Danke und Gruß
Volker
Anzeige
AW: Datenreihe
10.01.2010 20:10:38
Daniel
Hi
fehlerüberprüfung ohne beispieldatei kann ich nicht machen, bei mir läuft das Makro.
IsEven ist der Englische Ausdruck für die Formel IstGerade, womit geprüft werden, ob eine Zelle durch 2 Teilbar ist oder nicht. Damit sollte die Wechselfärbung realisiert werden.
Fall dein Excel diese Funktion nicht kennen sollte, müsstet du den Text ISEVEN(RC2) durch MOD(RC2,2)=0 ersetzen.
falls dir die Farben nicht passen, musst du halt den Zahlenwert nach .Colorindex = ändern. Das kannst du sicherlich aus deinem alten Makro abschreiben.
Gruß, Daniel
AW: Datenreihe
10.01.2010 20:17:25
Volker
Hallo Daniel,
Hier die Datei :https://www.herber.de/bbs/user/67116.xls
Danke und Gruß
Volker
Anzeige
AW: warum machst du au RC2 ein RC3
10.01.2010 20:48:41
Daniel
Hi
in der Zeile, wo die Formel mit ISEVEN reingeschrieben wird, steht bei mir : ISEVEN(RC2)
du machst in deinem Code aber ISEVEN(RC3) daraus.
warum?
so kann die Formel doch nicht funktionieren.
außerdem solltest du mal Prüfen, ob deine Excelversion die Formel "IstGerade" kennt.
wenn nicht, müsstest du die von mir beschriebene Korrektur durchführen. Aber bitte mit RC2 und nicht mit RC3.
Gruß, Daniel
AW: isEven
10.01.2010 20:19:58
Volker
Hallo Hary,
Danke für die Antwort jetzt ist es klar.
Gruß
Volker
AW: Datenreihe
10.01.2010 20:05:09
robert
Hi,
datumsreihe allerdings ohne formate
und nur für eine spalte
einfach(primitiv)? aber wirksam ;-)
gruß
robert
Sub tt()
Dim i%, x%
Dim start As Date, Ende As Date, Y%
Columns(1).ClearContents
Y = Range("D1")
start = DateSerial(Y, 1, 1)
Ende = "31.12." & Year(start)
For i = 1 To 377
If start > Ende Then Exit For
Cells(i, 1) = start
start = start + 1
If Month(start) > Month(start - 1) Then
i = i + 1
End If
Next i
End Sub

AW: Datenreihe
10.01.2010 20:24:57
Volker
Hallo robert,
Danke für die Antwort
Wer sagt eigentlich das das einfache nicht das Beste ist?
Gruß
Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige