2.3k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

habe folgenden Code
....
Dim datum
datum = Now

For n = 4 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(n, 1) < Now And Cells(n, 3) = "Mai" Then.......

ich möchte die IF-Abfrage zusätzlich so erweitern, dass die Bedingung jeweils nur vom 1.-10. des laufenden Monats erfüllt ist. Gleichzeitig möchte ich in diesem Beispiel den "Mai" durch eine Variable für den aktuellen Monat ersetzen.
Wer weiß wies geht?
Gruß
Andreas

14 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallom Andreas,

If Day(Cells(n, 1))<=10 and Month( Cells(n,1) = 5 Then


Gruß Hajo
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Hajo,
die Formel soll ganz allgemein (ohne weiteren Zellbezug) nur gültig sein im Zeitraum vom 1.-10. eines jeden Monats. Also für heute soll gelten: 1.5.-10.5.14 und im Juni entsprechend 1.6.-10.6.14, usw.
Gruß Andreas
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Andreas,

Gut ich bin dann raus, das verstehe ich nicht.

Gruß Hajo
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

ich weiß nicht, ob ich dicht richtig verstanden habe - ich würde deine Frage mal so interpretieren:

If Day(Cells(n, 1)) <= 10 And Month(Cells(n, 1)) = Month(Date) Then


Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,
danke, aber du hast mich auch nicht richtig verstanden.
Es geht nicht um "Cells(n,1)" sondern allgemein um das Tagesdatum.
Die IF-Bedingung soll in jedem Monat immer nur vom 1.-10. als erfüllt gelten. Aktuell wäre das da wir ja i Mai sind, der 1.5.-10.5. im Juni müßte dann der 1.6.-10.6. gelten. Die Abfrage muss sich also immer auf das aktuelle Tagesdatum beziehen und abfragen, ob das zwischen dem 1. und 10. des jeweiligen Monats liegt.
Gruß
Andreas

P.S.
Noch eine Zusatzfrage: Ich habe in einigen Zellen "Jan", "Feb", "Mrz", usw als Textvariable stehen. Das ging leider nicht als Datum, weil es sonst andere Konflikte gegeben hätte. Kriege ich diese Einträge irgendwie wieder so hin, dass sie als Datum erkannt werden, sprich als Monatsname?
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

was steht genau in Spalte A?

Bei meinem Code sollte es natürlich nicht Month(Cells(n, 1)) = Month(Date) heißen sondern Month(Cells(n, 3)) = Month(Date)

Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,

die Bedingung/Abfrage soll vollkommen unabhängig von Spalte "A" sein, sondern nur prüfen, ob das Tagesdatum zwischen dem 1. und 10. eines Monats liegt.
Andreas
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

If Day(Date) <= 10 Then


Wozu dann aber die Schleife?

Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,

ja, das habe ich gemeint. Danke.

Das ist nur ein Teil einer Abfrage, die ich in einer Schleife durchlaufe - das klappt auch.
Ich habe aber ein noch rießen Problem mit dem Datumsformat an anderer Stelle.
Dort habe ich benutzerdefinierte Einträge ("MMM") für Jan bis Dez.
Jetzt brauch ich diese aber wieder als Datum. Hast du einen Tipp wie ich z.: den benutzerdefinierten Inhalt von "A1"="Jan" nach B1 copiere, so dass in B1 dann ein Datumsformat draus wird.

Z.B.
Cells (1,2)=Cells(1,1). Format...????
Gruß Andreas
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,

im Excel konnte ich mein Format-Problem lösen:

=MONAT(DATWERT(VERKETTEN("1.";J8;" 2014")))

In "J8" steht ein benutzerdefiniertes Format "Mai" und die Formel liefert mir als Ergebnis = 5 - genau das was ich brauche!!

Aber wie sieht der dazugehörige Code aus????
Gruß
Andreas
...