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

Datum macht mich kirre

Datum macht mich kirre
Abu
Hallo zusammen,
habe da ein Problem und komme alleine nicht weiter. Wuerde mich ueber Hilfe freuen.
Ich bekomme eine Datei in der 2 Daten stehen die ich erst umwandeln moechte und dann die Tage dazwischen berechnen will.
Nun stelle ich fest das die Daten nicht immer gleich umgewandelt werden, z.B:
Aus: '2/10/2012 4:30:22 PM macht er 2-10-2012
Aus: '2/13/2012 9:54:00 AM macht er 13-2-2012
Ich verwende diesen Code:

Set startd = .Range("L" & a)
Set ended = .Range("R" & a)
If startd  "" And ended  "" Then
With startd
.NumberFormat = "dd-mm-yyyy"
.Value = DateValue(startd.Value)
End With
With ended
.NumberFormat = "dd-mm-yyyy"
.Value = DateValue(ended.Value)
End With

Die Zellen haben keine Formatierungen und sonst kann ich nichts erkennen wieso er mir 2 verschiedene Ergebnisse ausspuckt.
Hat jemand vllt. eine Idee?
Beste Gruesse
Abu

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datum macht mich kirre
06.03.2012 14:16:41
firmus
Hi Abu,
vom Hintergrund gesehen ist das ein triviales Problem.
Ich nehme an Du erhältst die Daten in tabellarischer Form und kopierst sie mit copy/paste in xls, oder
Du hast eine txt/csv-file und öffnest sie mit xls.
Dabei ist die automatische Formaterkennung aktiv - und er interpretiert Deine Zelle als Datum.
Natürlich merkt xls, dass "13" kein Monat sein kann und nimmt diese Wert dann als Tag.
Weil aber "10" durchaus ein Monat sein kann, nimmt xls hierzu Dein Standard-Datumsformat (z.B. TT.MM.JJJJ)
Der andere ist "MM.TT.JJJJ" - amerikanisches Format.
Wie abhelfen:
Empfangszelle als "Text" vorformatieren, anschließen mit xls-funktionen selbst umsetzen in "Date"-Format.
Sollten die Daten aus einer Webpage via Query kommen, dann WebDisableDateRecognition=true setzen.
Gruss,
Firmus
ps: Lass wissen, ob Du klar kommst.
Anzeige
AW: Datum macht mich kirre
06.03.2012 14:36:10
Abu
Hallo Firmus,
Danke erstmal fuer deine Antwort. Leider faengts beim umformatieren schon an. Wenn ich die Spalte markiere und anschliessend 'Text to Columns' waehle setzt er mir nicht alle Daten um.
Die Datei kommt als download und xls Datei. Hier mal ein Auszug der Originaldatei. Muss dazu gestehen das Daten in Excel und ich nicht die besten Freunde sind. Wenn Du vllt. einen etwas ausfuehrlicheren Loesungsansatz beschreiben koenntest, dann wuerde ich mich sehr freuen.
https://www.herber.de/bbs/user/79231.xls
Gruesse
Abu
Anzeige
AW: Datum macht mich kirre (codeschnipsel)
06.03.2012 14:33:00
firmus
Hi Abu,
diese Routine "arbeitet" bei mir seit 1 Jahr+ problemlos.
Die Zelle ist nach Erhalt der Daten Type=Date formatiert.
'open-date
Cells(Bcell.Row, offdateo).value = ActiveCell(4, 6).value '"opendate"
tmpJJJJn = Format((Cells(Bcell.Row, offdateo).value), "YYYY")
tmpMMn = Format((Cells(Bcell.Row, offdateo).value), "MM")
tmpTTn = Format((Cells(Bcell.Row, offdateo).value), "DD")
If tmpTTn kleinerzeichen !! 13 Then
tmpc1 = tmpMMn & "." & tmpTTn & "." & tmpJJJJn
Else
tmpc1 = tmpTTn & "." & tmpMMn & "." & tmpJJJJn
End If
Cells(Bcell.Row, offdateo).value = Format(CDate(tmpc1), "YYYY-MM-DD")
oder auch
Cells(Bcell.Row, offdateo).NumberFormat = "[$-407]d/ mmm/ yy;@"
Gruß
firmus
Anzeige
AW: Datum macht mich kirre (codeschnipsel)
06.03.2012 14:33:22
firmus
Hi Abu,
diese Routine "arbeitet" bei mir seit 1 Jahr+ problemlos.
Die Zelle ist nach Erhalt der Daten Type=Date formatiert.
'open-date
Cells(Bcell.Row, offdateo).value = ActiveCell(4, 6).value '"opendate"
tmpJJJJn = Format((Cells(Bcell.Row, offdateo).value), "YYYY")
tmpMMn = Format((Cells(Bcell.Row, offdateo).value), "MM")
tmpTTn = Format((Cells(Bcell.Row, offdateo).value), "DD")
If tmpTTn kleinerzeichen !! 13 Then
tmpc1 = tmpMMn & "." & tmpTTn & "." & tmpJJJJn
Else
tmpc1 = tmpTTn & "." & tmpMMn & "." & tmpJJJJn
End If
Cells(Bcell.Row, offdateo).value = Format(CDate(tmpc1), "YYYY-MM-DD")
oder auch
Cells(Bcell.Row, offdateo).NumberFormat = "[$-407]d/ mmm/ yy;@"
Gruß
firmus
Anzeige
AW: Datum macht mich kirre (codeschnipsel)
06.03.2012 16:10:56
Abu
Hallo Firmus,
Danke fuer deinen Codeschnipsel. Leider macht er genau den selben Fehler wie zuvor bei mir auch.
Keine Ahnung woran das liegt.
Habe den Anfang von deinem Code genommen und lass ihn anschliessend als Text in die Zelle schreiben. Dann nehm ich den mit meinem Code wieder auf und berechne weiter.
Sicher nicht die beste Loesung aber sie funktioniert und das reicht mir.
Vielen Dank fuer die schnelle Hilfe.
Beste Gruesse
Abu
AW: Datum macht mich kirre
06.03.2012 16:11:31
Rudi
Hallo,
am besten in Long umwandeln.
Sub CreateDate()
With Range(Cells(2, 12), Cells(Rows.Count, 12).End(xlUp))
.Value = myDate(Range(Cells(2, 12), Cells(Rows.Count, 12).End(xlUp)))
.NumberFormat = "DD.MM.YYYY"
End With
With Range(Cells(2, 18), Cells(Rows.Count, 18).End(xlUp))
.Value = myDate(Range(Cells(2, 18), Cells(Rows.Count, 18).End(xlUp)))
.NumberFormat = "DD.MM.YYYY"
End With
End Sub

Function myDate(rng As Range)
Dim arrTmp, rngC As Range, iCounter As Long, arrDate()
ReDim arrDate(1 To rng.Count, 1 To 1)
For Each rngC In rng
arrTmp = Split(rngC, " ")
arrTmp = Split(arrTmp(0), "/")
iCounter = iCounter + 1
arrDate(iCounter, 1) = CLng(DateSerial(arrTmp(2), arrTmp(0), arrTmp(1)))
Next
myDate = arrDate
End Function

Gruß
Rudi
Anzeige
Danke
06.03.2012 16:48:09
Abu
Hallo Rudi,
Was soll ich sagen: 1a, Perfekt!!!
Vielen Dank.
Gruss
Abu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige