Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2008 & 2003 VBA]Opentext methode en datum notaties

Pagina: 1
Acties:

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 03:53
Ik heb een aantal bestanden met verschillende data, ";" gescheiden. De velden met data in datumnotatie hebben de notatie dd/mm/yyyy.

Wanneer ik deze bestanden via de user interface (wizard tekstbestand openen) open, kan ik aan een veld deze notatie meegeven. Echter, wanneer ik in een macro (zelfs een macro, opgenomen met de recorder :)) hetzelfde doe, gaat excel er standaard van uit dat de notatie m/d/yyyy is. Dat leid ertoe dat alle data met een dag <13 naar een (verkeerde) datum wordt omgezet en alle andere data als onherkende tekststring blijven staan.

Wat ik zou willen is dat data danwel als "fatsoenlijke datums", danwel als string (maar dan wel alle records in het veld hetzelfde) worden neergezet.

Uitgeprobeerd:
-Prutsen aan de Fieldinfo array: VBA negeert die klaarblijkelijk als het om datums gaat.
-Microsoft erkent het probleem en raadde het aanmaken van een registry-key aan. Werkt niet.

Ik zoek nu of:
-Een oplossing van het bovenstaande.
-Een workaround, om die chaos kolommen, met strings en verkeerde data weer tot iets eenvormigs om te zetten.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik hier geen mogelijkheid om het na te gaan / te testen maar wat ik me kan herinneren is dat ik mbv vba eerst de system.international instellingen wijzigde en na de import weer terug, i.c.m. met de registrykey. Voorlopig fwiw. :)

mmm, hier in Xl2003 NL/XP NL doet hij het helemaal prima.

[ Voor 17% gewijzigd door Lustucru op 03-09-2008 20:58 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

de onterechte omzetting is wel consistent voor datums met een dag <13, dus dmv een hulpkolom met een omzettingsformule kunnen alle data omgezet worden (niet volledig getest):
code:
1
=ALS(ISTEKST(A1);DATUMWAARDE(A1);DATUM(JAAR(A1);DAG(A1);MAAND(A1)))

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 03:53
Verwijderd schreef op donderdag 04 september 2008 @ 13:27:
de onterechte omzetting is wel consistent voor datums met een dag <13, dus dmv een hulpkolom met een omzettingsformule kunnen alle data omgezet worden (niet volledig getest):
code:
1
=ALS(ISTEKST(A1);DATUMWAARDE(A1);DATUM(JAAR(A1);DAG(A1);MAAND(A1)))
Hé. Differentieren en dan per cel converteren is idd. een oplossing. Moet 'm alleen nog even naar een VBA oplossing ombouwen, maar dat is triviaal. Performance zal wel instorten, maar dat is niet zo heel belangrijk bij dit projectje.

Verwijderd

snelheid zal nauwelijks (zeker niet drastisch) dalen als je bij de formule blijft.

[hulpkolombereik].formula=^^
[hulpkolombereik].value=[hulpkolombereik].value (=zet formules om naar waardes)
[schraporigineledatumkolom]