[Excel] Tekst naar kolommen - conversie datum gaat fout

Pagina: 1
Acties:
  • 1.216 views sinds 30-01-2008
  • Reageer

  • Leut
  • Registratie: Maart 2000
  • Laatst online: 17-07 23:06
Dagelijks krijg ik een bestand binnen die ik in Excel verder moet bewerken. Maar de opmaak is in tekst-formaat met spaties als scheidingstekens. Het formaat is als volgt:

' 13.170,60 021001 Wa UGCUNED1 FIAT: UGCUNED3 DD: 04-11-2003

Via een macro laat ik die gegevens zo converteren dat het daarna goed in Excel staat. En daar ontstaat nu ook het probleem.

In het begin v/d macro moet de tekst naar kolommen omgezet worden. Daarvoor gebruik ik de functie 'Tekst naar kolommen'. Nu ging dat altijd goed, maar sinds begin deze maand loopt het fout bij de datum.

De macro voert netjes alles uit, maar i.p.v. dat de datum 04/11/03 blijft, maakt de macro er 11/04/03 van. De dag wordt met de maand omgedraaid, terwijl de celopmaak dd/mm/jj blijft.
Doe ik dezelfde acties die de macro uitvoert, nu handmatig, dan gaat alles goed en blijft de datum als 04/11/03 bestaan.

Ik heb het geprobeerd om dit probleem te omzeilen via de functie '=deel', maar dat geeft niet gewenste effect (lees: de conversie verloopt niet zoals bedoeld en haalt niet hetzelfde resultaat als wel via 'Tekst naar kolommen' wordt behaald).
Een andere mogelijkheid was om dan Excel het automatisch laten aanpassen van de celeigenschappen op basis van de input uit te schakelen, maar dat zou dan op elke pc moeten gebeuren, terwijl deze macro op meerdere pc's gebruikt gaat worden; dus eigenlijk vervalt daarom deze optie al.

Het frapante is dus dat wanneer de acties handmatig uitgevoerd worden, alles goed verloopt. Maar zodra de macro alles uitvoert, de datum aangepast wordt door het omdraaien van de dag met de maand.

Waarom heb ik dit probleem dan niet eerder gehad? Dat is ook weer zoiets. Wanneer de datum b.v. 12/11/03 is, dan verandert die datum niet; dus de functie 'Tekst naar kolommen' gaat er dan geen 11/12/03 van maken. Pas sinds begin deze maand kwam ik erachter dat dit niet goed wordt uitgevoerd.

Ik hoop dat iemand een idee heeft wat er fout kan gaan, want ik zie het echt even niet meer. De tijdelijke, totaal niet ideale oplossing die ik nu voor nood gebruik is, de datum handmatig goed zetten. Maar daar wil ik uiteraard zo snel mogelijk vanaf.

-------
BtM909: Neen, dat helpt niet. De celeigenschappen worden gezet op dd/mm/jj, en blijven na de conversie ook zo staan. Ik had dit al geprobeerd, maar het hielp dus niet.

[ Voor 6% gewijzigd door Leut op 07-11-2003 13:45 ]

Queen - the champions of the world
"...if you no longer go for a gap that exists, you are no longer a racing driver" - Ayrton Senna
PVOutput 23x Longi 365Wp + SMA TriPower 5.0


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Als je achteraf nogmaals de cel-properties zet op dd/mm/jj, verandert de datum dan alsnog naar het goede formaat?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Leut
  • Registratie: Maart 2000
  • Laatst online: 17-07 23:06
Niemand verder een idee?

Ik heb nog weer geprobeerd de opmaak van de cellen voor het uitvoeren van de macro aan te passen, maar dat had helaas ook geen effect. De dag blijft stug omgedraaid worden met de maand, terwijl de opmaak van de cel staat dan op dd/mm/jj. Errug bizar..........

Queen - the champions of the world
"...if you no longer go for a gap that exists, you are no longer a racing driver" - Ayrton Senna
PVOutput 23x Longi 365Wp + SMA TriPower 5.0


Verwijderd

Beetje een omweg.
Splits de cel naar drie andere cellen, namelijk, Een dag van de maaand, een maand en een jaar. Voeg deze vervolgens met een concatenate (tekst.samenvoegen) weer samen in een volgende cel. In de cel daarnaast doe je deze nieuwe datum maal 1. En dat moet je natuurlijk ook nog even in een macro schrijven. Overigens ben ik ervan overtuigd dat het ook anders kan. Windows Regio instellingen?

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 12:46
Ik weet dat dit al een oud topic is, maar toch even een oplossing voor dit probleem.

Zie deze pagina voor een uitleg waarom het fout gaat en een eventuele oplossing.

De code hiervoor:
code:
1
2
3
4
5
6
7
8
Sub ConvertDate()
   Dim Cell As Object
   For Each Cell In Selection
      If IsDate(Cell.Value) Then
         Cell.Value = DateValue(Cell.Value)
      End If
    Next Cell
End Sub

Hail to the king baby!


  • pinockio
  • Registratie: Juli 2001
  • Laatst online: 25-05 11:48
Heb je de datumnotering in Windows (configuratiescherm) wel op NL in plaats van VS?

Disclaimer: P. aanvaardt geen aansprakelijkheid op grond van dit bericht.


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 12:46
Ja, Landinstellingen staan allemaal op Nederlands, ook de toetsenbord taal is NL met VS Internationaal indeling.
Als je ook op die pagina kijkt zie je ook dat het probleem in VBA zit. Als je in VBA een datum leest dan ziet hij hem eerst met US opmaak (mm/dd/yyyy) en als dat geen geldige datum oplevert schakelt hij over op NL opmaak(dd/mm/yyyy).
En daar gaat het dus fout. Ik had dus datums als 03/01/2006 en die ziet hij dus als 1 mrt 2006, totdat je bij 13/01/2006 komt en dat ziet hij weer als 13 jan 2006.

[ Voor 20% gewijzigd door urk_forever op 20-01-2006 10:00 ]

Hail to the king baby!

Pagina: 1