Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Makro in Datum umwandeln
23.06.2016 08:35:07
Silvi
Moin,
komme grade wieder nicht weiter und brauche mal eure Hilfe... Ich habe eine Datei die ich täglich aus SAP herunterladen muss, in der 2. Zeile, von Spalte F bis M steht das Datum von Montag bis Sonntag. Dieses Datum hat irgendein seltsames Format, dass sich irgendwie nicht umwandeln lässt. Hat jemand von euch eine Idee, wie man das per Makro lösen kann? In der Anlage findet ihr eine Datei mit dem Problem.
https://www.herber.de/bbs/user/106441.xlsx
Danke schonmal
Gruß
Sylvia

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ohne Makro in Datum umwandeln ...
23.06.2016 08:48:35
Matthias
Hallo
Hier mal ohne Makro
Schreibe eine 1 in die Zelle A2 (oder eine andere leere Zelle)
Kopiere Diese
Nun markiere F2:M2
Rechte Maustaste: Inhalte einfügen: Multiplizieren
Nun stehen Zahlen in den Zellen.
Jetzt einfach als Datum formatieren. Fertig ;-)
Gruß Matthias

AW: ohne Makro in Datum umwandeln ...
23.06.2016 09:05:50
Silvi
Hallo Matthias,
danke für den Tipp, du hast recht, so kann man es auch machen.
Ich hätte aber gerne ein Makro gehabt das ich mit einbauen kann.
Habe jetzt das Problem mit Makro aufzeichnen gelöst.
Gruß
Sylvia

AW: ohne Makro in Datum umwandeln ...
23.06.2016 09:42:54
Silvi
Problem doch nicht gelöst, mit Makro aufzeichnen funktioniert es gar nicht... :O(
Kann sich das nochmal jemand schauen?
Sub umformatieren()
Range("O2").Select
ActiveCell.FormulaR1C1 = "1"
Range("O2").Select
Selection.Copy
Range("F2:M2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormat = "m/d/yyyy"
End Sub

Anzeige
AW: ohne Makro in Datum umwandeln ...
23.06.2016 09:51:48
UweD
Sub umformatieren()
    With ActiveSheet
        .Range("O2").Value = "1"
        .Range("O2").Copy
        .Range("F2:M2").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        .Range("F2:M2").NumberFormat = "m/d/yyyy"
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD

Anzeige
AW: ohne Makro in Datum umwandeln ...
23.06.2016 09:57:45
Silvi
Danke an Uwe,
habe es grade getestet, aber dein Code funktioniert irgendwie auch nicht.
Verstehe es nicht...
Silvi

Hast du mal eine Musterdatei?
23.06.2016 10:00:54
UweD

AW: Hast du mal eine Musterdatei?
23.06.2016 10:21:44
Silvi
Hallo Uwe,
eine Musterdatei hatte ich angehängt.

AW: Hast du mal eine Musterdatei?
23.06.2016 10:25:11
UweD
Ja, hab ich eben gemerkt.
Ich weiß nicht, warum es auf die andere Art nicht klappt..
So werden die Zellen einzeln bearbeitet.

Sub Makro3()
Dim Z
For Each Z In ActiveSheet.Range("F2:M2")
Z.Value = DateValue(Z.Value)
Z.NumberFormat = "m/d/yyyy"
Next
End Sub
Gruß UweD

AW: Hast du mal eine Musterdatei?
23.06.2016 10:46:13
Silvi
Hallo Uwe,
das sieht schonmal super aus und klappt auch in der Beispieldatei, aber nicht in der richtigen Datei. Das Makro bleibt immer hängen bei "Z.Value = DateValue(Z.Value)"
Habe mir ein Makro selbst gebastelt und zusammen gestückelt, wahrscheinlich gibt es da irgendwo einen Konflikt... Kannst du mir sagen, wo der Fehler liegt?
Kann leider keine Makros selber schreiben, nur aufzeichnen.
Danke Dir schonmal!
Silvi
Sub Umformatieren_Wochenplanung_aus_Text()
Workbooks.Add
Range("A1").Select
ActiveSheet.Paste
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(7, 1), Array(38, 1), Array(64, 1), Array(77, 1), _
Array(92, 1), Array(103, 1), Array(116, 1), Array(129, 1), Array(142, 1), Array(155, 1), _
_
Array(168, 1), Array(181, 1), Array(194, 1)), TrailingMinusNumbers:=True
Rows("1:8").Select
Selection.Delete Shift:=xlUp
Rows("3:1000").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 1).End(xlUp).row To 1 Step -1
If Cells(loeschen, 1).Value = "-------" Then
Rows(loeschen).Delete
End If
Next loeschen
Dim lngRow
lngRow = Range("L1").End(xlDown).row
Rows(lngRow + 1 & ":10000").Delete
Dim Z
For Each Z In ActiveSheet.Range("F2:M2")
Z.Value = DateValue(Z.Value)        Z.NumberFormat = "m/d/yyyy"
Next
ActiveWorkbook.SaveAs Filename:= _
"H:\Dateiname.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub

Anzeige
Datum umwandeln
23.06.2016 11:35:33
Rudi
Hallo,
versuch's mal mit
Z.Value = DateValue(Trim(Z.Value))
Gruß
Rudi

AW: Datum umwandeln
23.06.2016 11:43:26
Silvi
Hallo Rudi,
geht leider auch nicht: Laufzeitfehler 13
Das Datum in den Zellen wird aber umgewandelt, nur das Makro hängt dann irgendwie.
Silvi

AW: Datum umwandeln
23.06.2016 12:11:17
snb
Und was passiert mit:
Sub M_snb()
[F2:M2] = [F2:M2].Value
End Sub

AW: Datum umwandeln
23.06.2016 12:30:39
Silvi
Hallo snb
das Makro bleibt jetzt nicht hängen, aber es wird auch nix umformatiert

AW: Makro in Datum umwandeln
23.06.2016 12:56:52
Alex
Hi,
nicht schön, aber seltsam - und scheint zu klappen (wenigstens in der Musterdatei)
Sub test()
Dim z As Range
For Each z In Range("F2:M2")
z = z * 1
z = CDate(Mid(z, 3, 2) & "." & Left(z, 2) & "." & Right(z, 4))
z.NumberFormat = "d/m/yyyy"
Next z
End Sub
VG,
Alex

Anzeige
AW: Makro in Datum umwandeln
23.06.2016 13:15:03
Silvi
Ihr seid die Besten!!!
Hab jetzt verstanden warum das Makro nicht funktioniert hat... die Dateien die ich für die Umformatierung herunterlade variiert in der Spaltenanzahl, deshalb konnte es wohl nicht funtionieren.
Super!
Vielen Dank an alle Helfer!
Silvi

350 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige