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

Tekst converteren naar getal middels VBA

Status
Niet open voor verdere reacties.

allard1

Gebruiker
Lid geworden
5 dec 2006
Berichten
314
Excellerts,

Ik heb een stukje code geschreven om bij bepaalde keuzes in bepaalde cellen bepaalde waarden weer te geven. Ik zal een stukje code plakken om te laten zien hoe een en ander werkt
Code:
If Range("b15").Value = "Ja" And Range("b16").Value = "4" And Range("b17").Value = "1" Then
Range("i8").Value = "4,80"
Range("i9").Value = "5,50"
Range("i10").Value = "6,70"
Range("i11").Value = "8,20"
Range("i12").Value = "10,00"
Range("i13").Value = "12,20"
Range("i14").Value = "15,00"
Range("i15").Value = "18,50"
Range("i16").Value = "22,90"
Range("i17").Value = "28,80"
End if
End Sub
Dit is het begin want de code wordt nog wat uitgebreider, maar ik wilde dit gedeelte eerst testen. De gegevens worden prachtig in de cellen weergegeven. Echter gebeurt dit wel als tekst. Dat is niet handig, want ik wil graag rekenen. Ik dacht vervolgens dat de volgende methode zou helpen in de code
Code:
Range("i8:i17").Select
Selection.NumberFormat = "0,00"
Helaas Excel blijft het zien als tekst. Wie heeft er een handige werkbare code. Ik heb google al afgezocht en Helpmij eveneens, maar een oplossing kan ik niet vinden. Het moeten overigens percentages worden.

Groet en alvast bedankt voor de oplossing
 
De aanhalingstekens bij getallen weglaten en de komma vervangen door een punt.

Range("i8").Value = 4.8

Mvg

Piet
 
Idd, de aanhalingstekens zorgen ervoor dat de getallen als tekst worden aanzien.

Dat wordt wel een heel karwei om al die cellen in VBA code om te zetten. Het is maar een voorstel hé, maar kan je niet beter die waarden op een aparte sheet zetten en er dan naar verwijzen in je code. Op die manier heb je eenvoudige code, en het aanpassen van de waarden kan gebeuren zonder in de code te duiken.

Ik heb snel een bestandje aangemaakt met hetgeen ik bedoelde. Bekijk het eens, misschien kan het helpen.

Oh ja, als andere gebruikers die sheet met waarden niet mogen zien, zet je hem in de VBA properties best op xlveryhidden.
Ben je bang dat gebruikers je tabnamen gaan veranderen dien je de code aan te passen zodanig dat hij de VBA tabnamen gebruikt ipv de getoonde tabnamen in Excel.

Voorbeeld bestand Allard1.zip
 
Bedankt voor jullie reacties. Het is inderdaad een heel karwei (geweest inmiddels). Dat van die aanhalingstekens wist ik dus niet (ben nog een beetje een VBA noob). Maar ik heb het uiteindelijk als volgt opgelost.

Zelfde code als hierboven gehanteerd. Vervolgens in de rij ernaast de volgende Formule gehanteerd
Code:
=ALS(I8="";"";(0+I8)/"100")
Zo wordt de tekst omgerekend naar een percentage (cel eigenschappen wel aanpassen). Om in elke cel de formule te vullen heb ik de volgende code gehanteerd
Code:
Range("j8").Value = "=IF(RC[-1]="""","""",(0+RC[-1])/""100"")"

Uiteraard heb ik alle codes opgesplitst en er niet een lange code van gemaakt. Het is misschien een beetje een houtje touwtje oplossing, maar hij werkt prima.

De reden dat ik geen apartesheet gebruik voor de gegevens is, omdat ik wil voorkomen dat mensen gaan zitten prutsen. En geloof me er zijn heelveel mensen die zoveel van excel weten dat ze een sheet om zeep kunnen helpen :p

Groet,
Allard
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan