Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nach Teilergebnissen das Datum formatieren

Nach Teilergebnissen das Datum formatieren
04.07.2008 19:05:04
edie
Hallo zusammen,
mit dem nachfolgenden Code werden Teilergebnisse berechnet
dabei wird leider das Datum in ein Englisches Format umgewandelt.
Statt 22.02.2008 Maximum wird 2/22/2008 Maximum in der Spalte A.

Sub Max()
Worksheets("Datum").Activate
Selection.Subtotal GroupBy:=1, Function:=xlMax, TotalList:=Array(3, 4, _
5, 6, 7, 8, 9, 10), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
ActiveSheet.Outline.ShowLevels RowLevels:=2
End Sub


Mit einem zweiten Code versuche ich das Wort Maximum los zuwerden.
Vorher aber kopiere ich die Ergebnisse, ohne Formeln in ein neues Blatt.


Sub Wort()
Dim A As Byte, strDatum As String
Application.ScreenUpdating = False
For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row
strDatum = Trim$(Replace(Cells(A, 1).Value, "Maximum", ""))
If IsDate(strDatum) Then
Cells(A, 1) = CDate(strDatum)
End If
Application.ScreenUpdating = True
Next A
End Sub


Mein Problem, das Datum zwischen dem 01 und 12 des Monats wird falsch
angezeigt, hier ein Beispiel:
30.03.2008
31.03.2008
04.01.2008
04.02.2008
04.03.2008
04.04.2008
04.05.2008
04.06.2008
04.07.2008
04.08.2008
04.09.2008
04.10.2008
04.11.2008
04.12.2008
13.04.2008
14.04.2008
Wie könnte man das Problem lösen?
Vielleicht in der Zeile: Cells(A, 1) = CDate(strDatum)?
Vielen Dank im Voraus.
Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Teilergebnissen das Datum formatieren
05.07.2008 11:02:21
Chris
Servus Edie,
das Problem ist, dass Zahlen kleiner 12 nicht eindeutig als Tag erkannt werden, daher wandelt Excel sie so um wie sie dastehen und vertauscht Monat mit Tag.
Ich hab mal dein Makro umgebaut. Jetzt wird im String bei Zahlen kleiner 12 (Tag) erst getauscht, dann mit CDate umgewandelt, dann sollte das passen.

Sub Wort()
Dim A As Long, strDatum As String, InStrString As Long, InStrRevString As Long
Application.ScreenUpdating = False
For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(A, 1)  "" Then
strDatum = Trim$(Replace(Cells(A, 1).Value, "Maximum", ""))
InStrString = InStr(strDatum, "/")
InStrRevString = InStrRev(strDatum, "/")
'MsgBox InStrString & " " & InStrRevString
If InStrString  0 And InStrRevString  0 Then
If Left(Right(strDatum, Len(strDatum) - InStrString), InStrRevString - 1 - InStrString) 


Gruß
Chris

Anzeige
AW: schreibe ...<= 12 Then... owT
05.07.2008 11:15:16
Chris
.

AW: Super, funktioniert einwandsfrei! Dankeschön
05.07.2008 11:27:00
edie
Hallo Chris,
super, funktioniert einwandsfrei!!!
Vielen herzlichen Dank.
Grüße

AW: Amerik. Datum umwandeln
05.07.2008 18:53:12
Erich
Hallo Edie,
vielleicht gehts auch etwas kürzer:
Versuch mal in der Prozedur Wort()
strDatum = Trim$(Replace(Cells(A, 1).Value, "Maximum", "")) ' unverändert
Cells(A, 1) = DateValue(Application.Substitute(strDatum, "/", "."))
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Amerik. Datum umwandeln
05.07.2008 18:55:00
Erich
Hallo nochmal,
zwischen den beiden Zeilen bleibt natürlich wie bisher
If IsDate(strDatum) Then
stehen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige