Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA Problem mit Format(Date)
17.03.2008 21:07:45
abaSisa
Hallo,
beschäftige mich seit einiger Zeit etwasmit VBA und dabei haben mir die Beiträge dieses Forums immer wieder geholfen...
Leider habe ich jetzt ein Problem, für dessen Lösung ich Eure Hilfe benötige:
Ich vba'le gerade an einem Workbook herum, in dem auf eingien Sheets Datumsangaben zu machen sind, diese ziehe ich dann für einen Vergleich heran. Dafür reicht mir ja ein Format.
Die Datumsangabe soll in der Form: März 08 in einer zelle ausgegeben werden. Das funktioniert ja über: Cells(i,j) = Format(Date, "mmmm yy") (sollte es zumindest)
Im März ist das auch kein Problem. In der Zelle erscheint das Datum im "Standard" - Format.
Im April bekomme ich aber auf einmal 08. Apr und im als Format wird dann das benutzerdefinierte "TT. MMM" angezeigt, obwohl es in die Zelle mit obigem Format geschrieben werden sollte...
Hier dann auch der Code (habe das Problem mal separiert und als Private Sub verfasst):

Private Sub CommandButton1_Click()
Dim Bereich As Range
Dim AktDatum, TestDatum, AktMonat, AktJahr As String
Dim ActMonth1 As Integer
i = Cells(1, 10)
Cells(i, 1) = Format(Date, "mmmm yy")
Cells(1, 10) = i + 1
Cells(i, 2) = Format(CDate(DateSerial(Year(Date), Month(Date) + 0, 1)), "mmmm yy")
AktJahr = Format(CDate(DateSerial(Year(Date), 1, 1)), "yy")
AktMonat = Format(CDate(DateSerial(Year(Date), Month(Date) + 1, 1)), "mmmm")
Cells(i, 3) = AktMonat & " " & AktJahr
AktDatum = Format(CDate(DateSerial(Year(Date), Month(Date) + 1, 1)), "mmmm yy")
Cells(i, 4) = AktDatum
Set Bereich = ActiveSheet.Columns(3).Find(AktDatum)
ActMonth1 = Bereich.Row
Cells(i, 5) = ActMonth1
End Sub


Das Problem zieht sich weiter durch das ganze Jahr. es gibt Monate, in denen ich den richtigen Ausdruck erhalte und es gibt Monate, da bekomme ich wieder den falschen Ausdruck (April, Januar, Februar, September).
Woran liegt das und wie kann ich es programmieren?
thx
abaSisa

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Problem mit Format(Date)
17.03.2008 21:21:00
Tino
Hallo,
eine Möglichkeit, passe das Format der Zelle an.
Beispiel:
Cells(i, 3).NumberFormat = "mmmm yy"
Gruß
Tino

AW: VBA Problem mit Format(Date)
17.03.2008 22:43:00
abaSisa
Hi,
Danke, das klappt zwar, nur bringt es mich leider nicht weiter...
Worauf es mir ankommt ist die Find() - Funktion. Bei einem Monatswechsel soll halt eine gewisse Zelle angesteuert werden. Wie gesagt, im März funzt des auch, da das Format richtig ausgegeben wird, dann wird das "AktDatum" auch gefunden.
Ich brauche entweder eine Erklärung, warum Excel bzw VBA so einen Stuß macht (damit ich es umgehen kann) oder eine plausible Lösung...
gruß
abaSisa

Anzeige
AW: VBA Problem mit Format(Date)
18.03.2008 00:19:00
Tino
Hallo,
an der Linksbündigkeit beim Monat März, kann man erkennen dass Excel dies als
Text Interpretiert,
im April erkennt er ein Datum und stellt entsprechend dass Datumsformat ein.(keine Ahnung warum)
Abhilfe, in den entsprechenden Zelle das Textformat einstellen.
Gruß
Tino

AW: VBA Problem mit Format(Date)
18.03.2008 09:08:01
abaSisa
Danke, dieser Weg bringt mich aber lieder auch nicht weiter.
Worauf es mir bei der Programmierung ankommt ist die Find-funktion und die funzt dann leider auch nicht (zumindest, wie jetzt auch, nicht in jedem Monat)...
Über das NumberFormat bekomme ich zwar den richtigen Ausdruck dargestellt. Die zelle ist jedoch mit einem Datum (TT.MM.JJJJ) belegt, womit die Find-funktion nicht funktioniert, da im VBA selber interesaanterweise alles richtig behandelt wird. Sprich, die Formate sind alle in "mmmm yy" und wenn ich den spaß in ein Label (Steuerelement) schreibe, dann steht dort auch das richtige drin. Sobald ich aber einer Zelle den Wert aus
VBA zuweise, passiert der Mist, daß bei einigen monaten das richtige "mmmm yy" steht und bei anderen "TT. MMM", wobei der Tag = dem Jahr ist... und das versteh ich einfach nicht....
Das zerstört mir auch meinen Ansatz, daß ich ein .Find(AktDatum) benutzen kann...
gruß
abaSisa

Anzeige
AW: VBA Problem mit Format(Date)
18.03.2008 09:16:00
abaSisa
Hallo nochmal
ich habe jetzt folgendes ausprobiert:
In das Sheet eine TextBox (Steuerelement) und dann in den Eigenschaften bei 'Linked Cell' eine Zelle eingegeben, die erhält dann glüklicherweise den richtigen Eintrag "April 08", wenn ich den TextBox.Value in eine Zelle schreibe, passiert immernoch der bisherige Stuss.
Meine Frage lautet nun wie folgt: Kann ich über VBA bei dem OLEObject die Eigenschaft der LinkedCell definieren?
Bei der Makroaufzeichnung ging es nicht...
Danke für die Hilfe
abaSisa

AW: VBA Problem mit Format(Date)
18.03.2008 09:37:00
abaSisa
Hallo,
ich schon wieder...
habe jetzt folgendes gemacht: statt "mmmm yy" lasse ich mir jetzt "mm. yyyy" ausgeben:

Private Sub CommandButton2_Click()
Dim Bereich As Range
Dim AktDatum, TestDatum, AktMonat, AktJahr As String
Dim ActMonth1 As Integer
i = Cells(1, 10)
Cells(i, 1).CurrentRegion.NumberFormat = "General"
Cells(i, 1) = Format(Date, "mm. yyyy")
Cells(i, 2) = Format(CDate(DateSerial(Year(Date), Month(Date) + 1, 1)), "mm. yyyy")
AktJahr = Format(CDate(DateSerial(Year(Date), 1, 1)), "yyyy")
AktMonat = Format(CDate(DateSerial(1, Month(Date) + 1, 1)), "mm.")
TestDatum = AktMonat & " " & AktJahr
Cells(i, 3) = TestDatum
AktDatum = Format(CDate(DateSerial(Year(Date), Month(Date) + 1, 1)), "mm. yyyy")
Cells(i, 4) = AktDatum
Set Bereich = ActiveSheet.Columns(3).Find(AktDatum)
ActMonth1 = Bereich.Row
Cells(i, 5) = ActMonth1
Cells(1, 10) = i + 1
End Sub


Auf einmal kann Excel mir den Spaß als Text anerkennen. Das ist zwar nur notdürftig, aber besser als gar nix...
Nochmal vielen Dank für die Hilfe
abaSisa

Anzeige
AW: VBA Problem mit Format(Date)
18.03.2008 11:06:00
Uwe
Hi,
nur ein Tip, mal abgesehen von Deinem Makro:
Ich kenne das Problem mit den Monaten, die erkannt oder nicht erkannt werden, wenn ich englische Datumsangaben importiere. Excel erkennt 01-Jan-2008. Aber NICHT 01-Mar-2008, weil es im Deutschen 01-Mrz-2008 heißt usw (z.B Dec / Dez).
Vielleicht ist ja da bei Dir "der Hund begraben".
Gruß
Uwe
(:o)

AW: VBA Problem mit Format(Date)
18.03.2008 11:46:00
Tino
Hallo,
im März funzt des auch, da das Format richtig ausgegeben wird
Wie gesagt mach in den Zellen das Textformat.
Gruß
Tino

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige