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

Excel ziet getallen als tekst

Status
Niet open voor verdere reacties.

JeroenF

Gebruiker
Lid geworden
30 sep 2014
Berichten
12
Beste forumleden,

Ik ben bezig om een excel sheet in elkaar te flansen waarmee ik thuis mijn administratie kan doen. Deze excel sheet importeert d.m.v. een macro een CSV bestandje die ik kan downloaden van de site van mijn bank.

Wanneer deze CSV file er in staat worden alle bedragen die gecrediteerd of gedibiteerd worden weergeven als bijv: "45.25" (zonder aanhalingstekens)

Nu worden deze getallen in excel niet gezien als getallen maar als tekst wat het bijzonder lastig maakt. Ik wil namelijk van deze getallen een draaitabel maken maar dit werkt niet zonder getallen natuurlijk.

-zodra ik de getallen opmaak als bijv. een valuta gebeurt er helemaal niks.

-zodra ik de hele kolom selecteer. Alle punten vervang door komma's en als valuta opmaak gaat het goed.

-zodra ik hetzelfde doe, opneem als macro en de macro vervolgens uitvoer maakt hij er wel komma's van maar wordt het niet als een bedrag gezien maar als tekst. (zodra ik dan in een cel ga bewerken en zonder iets aan te passen op enter druk wordt het opeens wel als getal gezien.)

Ik probeer natuurlijk dit process ook geautomatiseerd te laten gaan d.m.v. een macro maar wil niet echt lukken.

Wat doe ik verkeerd?


EDIT: Even een voorbeeld bestandje.
Zodra je op het tabblad "zoekwaarden" op de knop "Bedragen Maken" klikt maakt hij van alle punten een komma en stelt hij de cellen in als valuta. Helaas werkt dit wel als ik het normaal doe maar niet als ik het via een macro laat doen.
 
Laatst bewerkt:
Waarschijnlijk is de eenvoudigste manier het vervangen van de . door een , in het CSV bestand zodat alles goed word geïmporteerd.
 
Als eerste bedankt voor de snelle reactie!

Heb ik ook al aan gedacht maar ik denk niet dat dat gaat werken.

1. Mijn vrouw die niet zo technisch onderlegd is moet hier ook mee kunnen werken. Makkelijkste is dus dat alles met 1 druk op de knop gebeurt..
2. Het CSV bestand is gescheiden door middel van komma's. Zodra ik dit ga aanpassen zal excel dit dus niet meer goed importeren waardoor alles achter de komma in een nieuwe kolom wordt geimporteerd
 
Jeroen,

Je moet de cellen met 1 vermenigvuldigen, dan word het een getal.(als het als tekst is opgemaakt)
Kun je dit in de macro verwerken?
 
Klinkt als een goede oplossing maar `

dit is wat ik heb gedaan:
-Een lege cel gevuld met het getal 1.
-Deze cel gekopieerd, Kolom H geselecteerd en d.m.v. plakken speciaal alle cellen vermenigvuldigd met 1.
So far so good. alle cellen worden opeens bedragen en dat gaat prima.

Nu doe ik precies hetzelfde, neem ik dat op als macro en sla deze macro op. wanneer ik deze macro dan uitvoer gebeurt er helemaal niks... (alle getallen worden wel vermenigvuldig met 1 maar het blijft tekst, Er komt geen € voor te staan en het wordt niet netjes rechts uitgelijnd)
 
Plaatst eens een voorbeeld van je bankbestand. Eventueel met geanonimiseerde gegevens. Ik denk dat de import routine wel zo kan worden aangepast dat het in 1 keer goed gaat.
 
Zoek eens naar format, daarmee stel je de celeigenschap in.
Dat kun je ook in de macro instellen.

Ik zit op mijn iPad en kan dus niets maken.
 
Hier een paar voorbeeld bestandjes:
Excel bestandje

CSV bestandje

Overigens wordt in een apart Excel bestand hier een draaigrafiek en tabel van gemaakt.

EDIT: @hierboven, de celeigenschappen staan ook al ingesteld in de macro. (Selection.NumberFormat = "$ #,##0.00")
 
Laatst bewerkt:
Als ik het voorbeeld document open staan de bedragen waar het om gaat in kolom H. Na de import zie ik de bedragen in kolom G staan. Voeg in de import routine dit toe, net voor het selecteren van het formulier Zoekwaardes:

Code:
    'Wijzig kolom G
    ActiveSheet.Columns("G").Replace _
     What:=".", Replacement:=",", _
     SearchOrder:=xlByColumns, MatchCase:=True
    ActiveSheet.Columns("G").NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* ""-""??_);_(@_)"

Wijzig in bovenstaande code eventueel "G" in "H"

Zet ook dit net voor de Clear Data Sheet:
Application.ScreenUpdating = False

En dit net voor de End Sub:
Application.ScreenUpdating = True

Die laatste 2 zijn alleen voor een rustiger beeld tijdens de bewerking door de import routine.
 
Laatst bewerkt:
Heb het net geprobeerd zoals jij voorstelde maar nog steeds doet het probleem zich voor.
In de kolom zijn wel netjes alle punten vervangen door komma's maar het wordt niet als een getal gezien.
 
In mijn test met jouw document werkt het prima. Bij welke actie merk je dat het niet als getal wordt gezien?
 
Ik heb die code van jouw tussen de rest van de code gezetten die gebruikt wordt om het CSV bestand te importeren zoals jij al eerder hebt gezegd.

Daarna heb ik het CSV bestand opnieuw geimporteerd. Nadat hij hier klaar mee is ga ik naar het tabblad "data" om te kijken wat er met de cijfers is gebeurt. Alle punten zijn vervangen door komma's maar daar is ook alles mee gezegd. het wordt nog steeds gezien als "tekst".

Tekstopmaak: Links uitgelijnd en zonder € teken ervoor oid. (gebruiken als getallen in een formule is ook niet mogelijk)
Getalopmaak: Rechts uitgelijnd, € teken ervoor en mijn rapportage excelbestand werkt prima.


Ondertussen wel een "oplossing" gevonden. Zodra ik bij de land&taal instellingen van mijn computer de decimaaltekens vernader van komma's naar punten gaat het wel goed. Ik denk dat ik dat maar ga gebruiken en kijken of ik deze instellingen in mijn computer snel kan aanpassen d.m.v. snel wisselen tussen meerdere accounts

EDIT:
Net even een andere formule geprobeerd en die werkt tot nu toe prima.
Code:
ActiveCell.FormulaR1C1 = "=VALUE(RC[-4])"

Moet ik alleen even een hulpkolom maken.
 
Laatst bewerkt:
Ondertusen is het opgelost. Door bij het importeren van de CSV file de tekst
Code:
.TextFileDecimalSeparator = "."
toe te voegen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan