Code Activesheet.Paste geeft ander resultaat dan handmatig Plakken (Ctrl-V)

Status
Niet open voor verdere reacties.

daan108

Gebruiker
Lid geworden
8 feb 2008
Berichten
138
Hallo,

Ik heb een Excel-bestand waarin ik data wil plakken die uit een andere applicatie zijn gekopieerd.
Doe ik dit handmatig, bijvoorbeeld met Ctrl-V dan gaat alles goed.
Maar wanneer dit met VBA-macro gebeurt, dan maakt hij bijvoorbeeld van het getal 3,145 het getal 3145 (met een duizendtalscheiding ertussen, dus je ziet 3.145). Andere getallen gaan wel goed, komt doordat er drie cijfers achter de komma staan.
De macro bevat de opdracht Activesheet.Paste (dat krijg je als je Ctrl-V opneemt met de recorder)
De gekopieerde data zijn met komma als decimaalscheiding (gecontroleerd door plakken in Word).
In Excel is komma decimaalscheiding (maar niet in VBA)
Ik heb al geprobeerd om eerst Excel voor te bakken door middel van Tekst naar kolommen en te kiezen voor , als decimaalscheiding.

Heeft iemand een oplossing om m.b.v. code de juiste getallen te plakken?
Alvast bedankt, Daan.
 
Heb je pastespecial geprobeerd en opgenomen ?
 
Heb je pastespecial geprobeerd en opgenomen ?

Dank voor reactie. Ja geprobeerd. Krijg twee opties na kopieren: Plakken speciaal als Tekst of Unicodetekst.
Handmatig plakken gaat goed. Met VBA plakken (ActiveSheet.PasteSpecial Format:="Tekst" resp. "Unicodetekst") blijft dezelfde fout geven.
VBA interpreteert een getal met drie cijfers achter de komma als een duizendtal en plakt vervolgens ook het duizendtal.
Getallen met bijvoorbeeld twee of vier cijfers achter de komma worden ook als zodanig geplakt. En volgens mij als tekst, want als ik op knop "meer decimalen" klik dan gebeurt er niets.
Blijven er volgens mij twee opties: VBA duidelijk gemaakt worden dat:
- alles als tekst geplakt moet worden (niks proberen getallen te interpreteren), of
- komma is decimaalscheiding
Hoe?
Of heeft iemand een ander idee?
Groet, Daan.
 
werkbare oplossing gevonden:

Door in de Excelsheet de celeigenschappen van het plakbereik op "Tekst" te zetten (stond op Standaard), ziet het eruit zoals het moet (getallen zijn nu echter wel tekst maar dat is voor mij ok). Het getal 1,234 wordt nu niet geplakt als 1234 of 1.234 maar als 1,234.

Ik laat status nog even op "niet opgelost" staan want misschien heeft iemand nog een suggestie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan