string omzetten naar een waarde

Status
Niet open voor verdere reacties.

mzuita

Gebruiker
Lid geworden
6 nov 2007
Berichten
12
beste forumleden,

ik heb een string:
0,3*[MEET01]+0,2*[MEET02]

via een routine vervang ik de codes tussen de brackets met getallen:
0,3*22+0,2*34

Mijn probleem is nu om deze string om te zetten in 1 getal:
13,4

Wanneer ik dat doe via het plaatsen van een '=' voor de string geeft VBA een application error.
Wie heeft er een oplossing?

groeten,
Marcel

die ik via een tabel vul met waarden. Dit is nog steeds een string,
 
Laatst bewerkt:
Rond de string kan je misschien

CDbl( ... )

zetten.
 
Rond de string kan je misschien

CDbl( ... )

zetten.


ik krijg dan een type mismatch...

tekst = (1*1,052699*(1))

Code:

Sub omzetten()

Dim tekst As String
Dim getal As Double

tekst = ActiveCell.Offset(0, 0).Value
getal = CDbl(tekst)

End Sub
 
Hallo mzuita !

De string die je hebt na vervanging van de rechte haakjes is in feite een stukje VBA-code dat je wil laten uitvoeren. Dat kan je laten uitvoeren door er een formule van te maken in een of andere vrije cel. Probeer de volgende code eens uit:

Code:
Sub Omzetten()
Dim cString As String, nGetal As Double
cString = "0.3*22+0.2*34"
ThisWorkbook.Sheets(1).Cells(1, 1).NumberFormat = "General"
ThisWorkbook.Sheets(1).Cells(1, 1).Formula = "=" & cString
nGetal = CDbl(ThisWorkbook.Sheets(1).Cells(1, 1).Value)
MsgBox nGetal
End Sub

Let ook op wat je instellingen zijn van het decimaal teken. Dat kan een komma of een punt zijn. Het decimaal teken in de string moet overeenstemmen met het teken dat Excel gebruikt in z'n formules.

Groeten,
MDN111.
 
Hallo mzuita !

De string die je hebt na vervanging van de rechte haakjes is in feite een stukje VBA-code dat je wil laten uitvoeren. Dat kan je laten uitvoeren door er een formule van te maken in een of andere vrije cel. Probeer de volgende code eens uit:

Code:
Sub Omzetten()
Dim cString As String, nGetal As Double
cString = "0.3*22+0.2*34"
ThisWorkbook.Sheets(1).Cells(1, 1).NumberFormat = "General"
ThisWorkbook.Sheets(1).Cells(1, 1).Formula = "=" & cString
nGetal = CDbl(ThisWorkbook.Sheets(1).Cells(1, 1).Value)
MsgBox nGetal
End Sub

Let ook op wat je instellingen zijn van het decimaal teken. Dat kan een komma of een punt zijn. Het decimaal teken in de string moet overeenstemmen met het teken dat Excel gebruikt in z'n formules.

Groeten,
MDN111.

Bedankt voor de hint. Het probleem werd veroorzaakt door 2 verschillende versies Excell. Een die met punten werkt en een die met komma's werkt. En het moesten punten zijn, dus na het veranderen van komma's in punten deed ie het. Frustrerend dat gezoek, maar weer wat geleerd!
 
Bedankt om het even te melden.

Je mag de vraag nog op opgelost zetten aub.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan