Registriert seit: 26.09.2015
Version(en): 2013
Guten Tag mieinander
ich schreibe in ein TXT-File Daten von der Zelle. Eine Spalte enthält Datumzahlen (z.B. 06.02.2020). Wie kann ich diese importieren und ein berechenbares Datumformat haben. Irgendwann ging ein Datum so in das Textfile #06.02.2020# und in der Tat war es auf der Zelle auch ein Datumsformat. Leider weiss ich nicht, wie ich das einmalig hingekriegt habe, wenn ich den string mit #06.02.2020# in das TXT-File bewusst schreibe, dann kommt es leider auch so wieder zurück. Oder müsste ich das Datum als Zahl in das File ablegen und dann die Zelle formatieren.
Was habe ich da für Möglichkeiten (Einstellungen usw.)
Vielen Dank für Eure immer geschätzten Hilfen.
Gruss
Stefan
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo Stefan,
wenn du die .csv-Datei mit PQ importierst, erkennt das Programm automatisch das Datumsformat. Bei deiner XL-Version musst du dir das kostenlose AddIn PowerQuery von der MS-Seite runterladen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 26.09.2015
Version(en): 2013
Vielen Dank, aber ich habe nur Excel zur Verfügung und eine TXT-Datei. Im Geschäft ist kein anderes Programm verfügbar. Geht es nicht anders?
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
PowerQuery (PQ) ist ein AddIn für Excel. Ab Version 2016 bereits enthalten; bei deiner Version musst du es installieren.
Wie sieht denn dein Import der .csv aus? Zeig doch bitte eine Beispieldatei (.xlsx - kein Bildchen!).
https://www.clever-excel-forum.de/Thread...ng-stellen
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 26.09.2015
Version(en): 2013
Guten Tag Günther
Ich kann das leider nicht exportieren. Aber ich lade alles in ein Array im Format "12.05.2020" und dann wird es als Array in die Tabelle geladen. Das ist auch eine Sache der Performance. Vielleicht müsste ich es im Format "#2020-05-12# abspeichern?
Gruss
Stefan
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Sorry, ich verstehe nicht, was du meinst. Du importierst eine .csv ins Excel; hier wird dir, so ich dich richtig verstehe, das Datumsformat nicht korrekt angezeigt? Wie "importierst" du die Datei? Mit Excel-Bordmitteln oder kopierst du sie einfach in ein Tabellenblatt rein? Dann könnte eventuell noch Text-in-Spalten helfen. Diese Fkt. findest du im Menü Daten.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 26.09.2015
Version(en): 2013
11.06.2020, 16:23
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2020, 08:33 von Kuwer.)
Ja, ich schreibe aus dem TXT-File die Daten in ein Array und nachher wird es auf einmal in die Tabelle eingefügt aus dem Array. Es sind also keine Formatierungen im Array ablegbar. Wenn ich quasi Zelle für Zelle importieren würde, dann könnte ich das Format bestimmen. Doch so - und es muss schnell gehen - muss ich wohl die Spalte im nachhinein wieder formatieren.
vielleicht muss ich mit .TextToColumns arbeiten?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Problem wird wohl der Typ des Arrays sein. Du wirst hier ein String-Array erhalten und das will nicht so richtig. Da helfen dann im Code auch nicht die Tricks wie Text in Spalten oder Multiplikation mit 1. Manuell sollte es aber gehen.
Mit Code auch, aber dann musst Du wahrscheinlich die Daten in ein zweites Array übertragen. Hier mal was zum Spielen, in A1:A3 hab ich 3 Daten.
Code:
Option Explicit
Sub test1()
Dim arrTemp
arrTemp = Range("A1:A3").Value
Range("B1:B3").Value = arrTemp
End Sub
Sub test2()
Dim arrTemp(1 To 3, 1 To 1) As String, iCnt%
For iCnt = 1 To 3
arrTemp(iCnt, 1) = Cells(iCnt, 1).Value
Next
Range("C1:C3").Value = arrTemp
End Sub
Sub test3()
Dim arrTemp(1 To 3, 1 To 1) As String, iCnt%, arrVal(1 To 3, 1 To 1) As Date
For iCnt = 1 To 3
arrTemp(iCnt, 1) = Cells(iCnt, 1).Value
Next
For iCnt = 1 To 3
arrVal(iCnt, 1) = arrTemp(iCnt, 1)
Next
Range("D1:D3").Value = arrVal
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2015
Version(en): 2013
Danke an Euch, werde mal verschiedene Optionen testen und in der Tat wir haben auch PowerQuery :)
Gruss
Stefan1
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
17.06.2020, 08:51
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2020, 08:52 von Kuwer.)
Hallo Stefan,
siehe dazu auch mal
hier.
Gruß Uwe