• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

inlezen datum uit txt-bestand

Status
Niet open voor verdere reacties.

Dick41

Nieuwe gebruiker
Lid geworden
25 feb 2008
Berichten
4
Ik heb een probleem met het inlezen van een txt-bestand in Excel.
In het txt-bestand staat de datum genoteerd als 02-11-2007 09:32:35

Als ik het txt-bestand in Excel open en omzet naar kolommen, dan wordt dit netjes omgezet in 2-11-2007 15:37. Als ik hiervoor echter een macro opneem, waarin ik precies hetzelfde doe, dan gaat het bij het afspelen van de macro fout. Dan maakt hij er 11-2-2007 15:37:11 van.
Als het andersom een onmogelijke datum wordt (bijvoorbeeld 20-11, kan hij niet omzetten naar 11-20), dan gaat het opeens wel goed.

Ik heb van alles geprobeerd, maar ik kom er niet uit.

Kan iemand mij misschien helpen?

Dit is een voorbeeld van een regel uit het txt-bestand:
;TOEVOEGING;509;200;32566;Jansen;Jan;;9090PJ;58;;B;;GEBR1;AUTORISATIE;;02-11-2007 15:37:11
 
Wil je een voorbeeld van txt bestand als bijlage toevoegen?
 
Code:
Sub test()
'
' test Macro
'

'
    Workbooks.OpenText Filename:= _
        "C:\Documents and Settings\Rob\Bureaublad\regel.txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
        Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
        16, 1), Array(17, 1)), TrailingMinusNumbers:=True
   [COLOR="Red"] Columns("Q:Q").Select
    Selection.NumberFormat = "m/d/yyyy"[/COLOR]
End Sub
Ik denk dat je deze twee regels moet toevoegen.
 
Probleem is nog niet opgelost.

Ik heb de regeltjes toegevoegd in de macro, maar het resultaat is nog steeds hetzelfde.

Ik heb het txt-bestandje geanonimiseerd en bijgevoegd.

gr.
Dick
 

Bijlagen

inlezen datum uit txt bestand

Hallo dick41,

Ik heb hetzelfde probleem en heb inmiddels ook alles al geprobeerd,

Ik denk zelf dat het te maken heeft met engelse en nederlandse versies.

Mijn probleem is dat ik een CSV bestand moet inlezen, waarin een datum in dit bestand staat volgens de nederlandse standaard (dd-mm-jjjj)

Ik heb al getracht dit via import dit op te lossen of bestand als totale werkblad te copieeren via macro-functies, echter tot nu toe alles zonder resultaat.
Ook heb ik al dit bestand ombenoemd als txt.bestand echter probleem blijft hetzelfde.

Wat ik wil is via een macro een (txt of CSV-) bestand kiezen en dan dit bestand met een tijd en een datum en een waarde in 3 kolommen in excell zien te krijgen.

Wie kan dit oplossen??
 
Als je na het inlezen de datum bepaald (stel de datum staat in E4) met de formule

Code:
=DAG(E4)&"-"&MAAND(E4)&"-"&JAAR(E4)

werkt dat dan niet?
 
Dick,

Ik heb in een cel een 1 geplaatst, die gekopieerd en via plakken speciaal - vermenigvuldigen de kolom goedgekregen. Daarna vervangen 0-1-1900 door niets en het is klaar. Echter, als ik deze handelingen aan de macro toevoeg werkt het niet, dus mijn eindbod is deze handelingen handmatig doen na het draaien van de macro.

De oplossing van Gert leidt tot een tekst. Een getal, dus datum krijg je wel met
Code:
=DATUM(JAAR(Q2);MAAND(Q2);DAG(Q2))
 
Laatst bewerkt:
Bedankt voor de aanwijzingen

Ik heb e.e.a. bekeken en tot de conclusie gekomen dat dit niet eenvoudig in de macro op te lossen is.
Probleem is ook dat een datum die omgekeerd niet logisch is (bv. 13 maart kan hij niet veranderen in 3-13),
wel goed gezet wordt (dan komt er dus gewoon 13-3).

Ik ga nu een aparte kolom maken met daarin de volgende formule.
Hiermee zet ik de datum weer goed.

Code:
=ALS(DAG(Q2)>12;DAG(Q2)&"-"&MAAND(Q2)&"-"&JAAR(Q2);MAAND(Q2)&"-"&DAG(Q2)&"-"&JAAR(Q2))

Bedankt voor jullie bijdragen.:thumb:

gr.
Dick
 
Dick,

Prima dat je een oplossing hebt, maar ik kreeg onderweg nog een idee:
Code:
Sub tweede_test()
'
' tweede_test Macro


'
  Application.ScreenUpdating = False
    ChDir "C:\Documents and Settings\Rob\Bureaublad"
    Workbooks.OpenText Filename:="C:\Documents and Settings\Rob\Bureaublad\Toev.txt", Origin:=932, StartRow _
        :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
        Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
        16, 1), Array(17, 1)), TrailingMinusNumbers:=True
    ActiveWindow.SmallScroll ToRight:=4
    Columns("Q:Q").ColumnWidth = 12.38
    Columns("Q:Q").NumberFormat = "m/d/yyyy"
    Range("R1").Select
    Columns("E:E").ColumnWidth = 14.13
    Range("R2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISBLANK(RC[-1]),"""",DATE(YEAR(RC[-1]),MONTH(RC[-1]),DAY(RC[-1])))"
    Range("R2").Select
    Selection.NumberFormat = "m/d/yyyy"
    Selection.AutoFill Destination:=Range("R2:R38"), Type:=xlFillDefault
    Range("R2:R38").Select
    Columns("R:R").ColumnWidth = 11.38
    Selection.Cut
    Range("R2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("R2:R38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("R:R").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("R1").Select
    Application.ScreenUpdating = True
End Sub
Deze werkt goed en zet alle data juist neer. Je opmerking over 13-3 kan ik even niet plaatsen.
 
reactie

OK, ik ga het proberen.

Met de opmerking van 13-3 bedoelde ik te zeggen dat een datum verkeerd komt als de omgekeerde datum geldig is. (bv. 11 maart wordt 3 november)
Als de omgekeerde datum niet geldig is (bv. 13 maart kan niet omgezet worden in de 3e van de 13e maand), dan zet Excel het opeens wel goed op 13 maart.

gr.
Dick
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan