• 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.

Verkeerde datumopmaak in excel na export vanuit programma

Status
Niet open voor verdere reacties.

petcir

Gebruiker
Lid geworden
2 sep 2015
Berichten
14
Hai,

Ik heb op mijn werk een export gekregen waarin verschillende datumopmaak staan:

10/23/2014
07/14/2015
12-feb-14
5-jan-15
02/26/2015
03/24/2015
11-jun-14
01/29/2015
07/14/2015
10-sep-14
02/27/2015
03/26/2015
04/30/2015
07/16/2015
01/27/2015

Via celeigenschappen kan ik eea veranderen, maar de cellen met de / blijven onveranderd en hier ken ik niet mee rekenen... Hoe kan ik 01/27/2015 overzetten naar 27-01-2015 of 27-jan-2015 met een formule?
 
Kijk anders even bij de vraag. Weeknummer, die gaat ook daarover.

In A1 b.v.b. 10/23/2014 in B1 de Formule
PHP:
=VERVANGEN(VERVANGEN(A1;3;1;"-");6;1;"-")
 
Laatst bewerkt:
Met een kleine macro zou het moeten lukken.
Code:
Sub hsv()
With Columns(1)
 .Replace "/", "-"
 .NumberFormat = "dd-mm-yyyy"
End With
End Sub
 
Hallo Sylvester,

Ik kan het niet reproduceren daar deze datum niet in het rijtje staat.
Vul ik het even handmatig in heb je gelijk.

Ik verneem het wel wat eruit het systeem van @petcir rolt.
 
percir, er is een kans dat excel de datums zoals: 12-feb-14 fout heeft vertaald.
ik denk dat de oorspronkelijke datum 02-dec-14 was, zou je dat na kunnen kijken?
 
Laatst bewerkt:
Harry,kleine aanpassing aan je sub.
ik denk dat hiermee de juiste datums tevoorschijn komen.
Code:
Sub hsv()
'die NoteText wordt gebruikt om te voorkomen dat wanneer de sub nog een keer
'gebruikt wordt niet nog een keer tussen maand en dag gewisseld wordt.
    Dim r As Range
    For Each r In Columns(1).SpecialCells(xlCellTypeConstants)
        r.Replace "/", "-"
        r.NumberFormat = "dd-mmm-yyyy"
        If DatePart("d", r) <= 12 And r.NoteText = "" Then
            r = DateSerial(DatePart("yyyy", r), _
                           DatePart("d", r), _
                           DatePart("m", r))
            r.NoteText "dag en maand terug_gewisseld"
        End If
    Next
End Sub
 
Laatst bewerkt:
Leuke code Sylvester,

We wachten het af.
 
Hai,
Sorry maar door (fijne) omstandigheden een paar daagjes vrij gehad...
Fijn dat iedereen zo hard meedenkt.

Allereerst wil ik niet met macro's werken. Het document waar ik het straks voor nodig heb moet gebruikt gaan worden door meerdere collega's die nog net het idee snappen om een formule naar onderen toe door te trekken (althans dat snappen ze in theorie).

Kijk anders even bij de vraag. Weeknummer, die gaat ook daarover.

In A1 b.v.b. 10/23/2014 in B1 de Formule

PHP Code:
1
=VERVANGEN(VERVANGEN(A1;3;1;"-");6;1;"-")

Deze formule werkt idd (met een 'Als...' erbij zodat ik alleen de foutieve opmaken pak)...

percir, er is een kans dat excel de datums zoals: 12-feb-14 fout heeft vertaald.
ik denk dat de oorspronkelijke datum 02-dec-14 was, zou je dat na kunnen kijken?

Ja, ik heb er even naar gekeken en hij heeft hem staan als:
MM/DD/YYYY
MM/DD/YYYY
MM-DD-YYYY
MM/DD/YYYY
etc...

Ik heb nu wel een formule om alles te zetten naar
MM-DD-YYYY
MM-DD-YYYY
MM-DD-YYYY
MM-DD-YYYY

Maar nu krijg ik ze niet omgedraaid naar
DD-MM-YYYY
 
Het probleem ligt bij het importbestand.
Dan moet je het daar oplossen en niet in Excel.

Zoals jullie allemaal weten heeft Excel nl. een ingebouwde gegevens'herkenner': als iets(tekst) op een Amerikaanse datum (mm/dd/yyyy) lijkt wordt het herkend als datum.
Omdat we in Europa gelukkig niet dat Amerikaanse systeem gebruiken is de gegevens'herkenning' van Excel voor niet-Amerikanen waardeloos en zelfs contra-productief. MS heeft blijkbaar nog geen weet van de wereld buiten de VS.
Als je ervoor zorgt dat het importbestand alleen gegevens bevat die door Excel niet fout geïnterpreteerd kunnen worden, bijv. door de small Endian ISO-notatie yyyy-mm-dd te gebruiken, hoef je daarna geen Excelformules of macro's te gebruiken.

Wijzig dus eerst via wordpad, Word, een macro het importbestand, zodat het daarna zonder problemen kan worden geïmporteerd.
Kijk ook nog eens naar de importmogelijkheden van Excel zelf (Data / tekstbestand)

In uiterste nood:

Code:
Sub M_snb()
   sn = Columns(1).SpecialCells(2)
   
   For j = 1 To UBound(sn)
     sn(j, 1) = CDate(sn(j, 1))
   Next
   
   Columns(1).SpecialCells(2).Offset(, 4) = sn
   Columns(1).SpecialCells(2).Offset(, 4).NumberFormat = "dd-mm-yyyy"
End Sub
 
Laatst bewerkt:
Je kan het met deze proberen.

PHP:
=DATUM(RECHTS(A7;4);LINKS(A7;2);MIDDEN(A7;4;2))

Nb MIDDEN() is in bepaalde versies van Excel DEEL()
 
Thnx, die had ik idd al en op deze manier kan ik alle dagen die tot de 12e van elke maand overzetten.
Nu maar eens deze week e.e.a. via een formule toch gaan overzetten. Ik heb idd overal gelezen dat het écht via de export zou moeten gebeuren vóór dat de gegevens in Excel terecht komen, maar ik ben eigenwijs. :)

Als het klaar is zal ik eea hier posten voor zij die nieuwsgierig zijn...
 
Ik kan je gerust stellen: deze vraag is al tig keer gesteld en 'beantwoord'. Gebruik de zoekfunktie van dit forum dan maar eens (zit er ook niet voor niets in).
 
Er is veel over gezegd en geschreven her en der, maar nergens kwam ik de oplossing tegen die ik wilde (het importeren moet makkelijk, gewoon knip en plak, en de polossing wilde ik in standaard formules hebben ipv macros's, omdat het bestand op 'delen' moet kunnen worden gezet).

Maar ik heb de oplossing (nou, een heeeeeeele grote workaround, maar het werk foutloos in ieder geval)... Voor hen die hem willen weten:

Ik heb na de import een reeks data, sommigen worden herkend, sommigen worden niet herkend, maar allen staan verkeerd om. Ik heb een verborgen tabblad gemaakt waarin ik een paar kolommen heb gemaakt. Eentje met alle verkeerde data, en eentje met hoe de data wel zou moeten zijn. Vervolgens heb ik via index.vergelijken de goede datum bij de verkeerde gezet. (kan ook via lookup, maar ik ben die andere net gewend)

Ik weet het... heel clean is het allemaal niet, maar het werkt en het bestand is nog steeds beheersbaar en de mensen op de afdeling kunnen er mee werken. Voor de allervoortreffelijkste oplossing award zal ik echt niet in aanmerking komen...
 
Heb je mijn oplossing niet geprobeerd? Ik weet niet of die in combinatie met delen werkt, maar delen van Excel bestanden gebruik ik zelf echt nooit en ik raad het al mijn klanten altijd van harte af omdat deze functionaliteit bij Excel notoir slecht geimplementeerd is: crashes, corrupties en fouten zijn aan de orde van de dag. Bij de Wizard tekst importeren kan je nl aangeven wat de datumvolgorde van het bestand is, zodat je de juiste gegevens direct krijgt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan