Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Excel] Eigenwijsheid MS

Paulus
4 antwoorden
  • Hey,

    Met Access lees ik een Excelbestand in, dit [b:e559b4cbe1].div[/b:e559b4cbe1]-bestand is ge-exporteerd door een dosprogramma. Het probleem is dat Excel veel teksten aanpast.

    Bij een kolom gevuld met ordernummers als '20501234000' voegtexcel scheidingspunten toe.
    Bij een kolom gevuld met aantallen die van zichzelf al scheidingspunten hebben, gaat excel ervan uit dat het komma's zijn, waardoor bv. '10.500' wordt omgetoverd tot '10,5'.

    Is het mogelijk dit tegen te gaan, zodat de originele teksten blijven staan?

    Bedankt!
  • Lees je het div-bestand in naar Excel of naar Access? Klinkt als het eerste, en als je dat vanuit Access doet, dan doe je dat via CreateObject("Excel.Application")?

    Is het een optie om voor het importeren eerst alle kolommen in Excel van een tekstformaat te voorzien?

    Cells.Select
    Selection.NumberFormat = "@"

    Of importeer je het bestand in Access door gebruik te maken van het Excel-importfilter? Dan is het misschien een optie om te importeren naar een bestaande tabel met alleen maar tekstkolommen.
  • Ik doe het inderdaad via [i:7b12f73860]CreateObject[/i:7b12f73860].

    Bij het ordernummer is dat inderdaad de oplossing. Bij het aantal (10.500) niet, excel blijft erbij dat de punt een decimaalsymbool is. Ook bij landinstellingen staat het 'Nederlands' ingesteld.

    Ik heb in excel zelf elke mogelijkheid geprobeerd, het blijft 10,5.
  • De punt wordt dus door VBA als decimaalteken gezien en de komma als scheidingsteken voor duizendtallen. Je kan het bestand eerst een keer voorbewerken met wat Replace()-functies om punten die als scheidingsteken worden gebruikt eruit te vervangen en evt. komma's die als decimaalteken worden gebruikt te vervangen door een punt. Mijn opzet zou dan zijn om een parsertje te schrijven die het div-bestand regel voor regel, veld voor veld afloopt om te kijken of een veld (met punten en komma's eruit vervangen) numeriek is en in dat geval die vervangingen te doen. Beetje omslachtig wel, maar ik neem aan dat je niet aan het dos-programma kan sleutelen, om ervoor te zorgen dat het standaard decimaalteken en geen scheidingstekens (ipv de nederlandse) worden gebruikt.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.