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

Uitkomst formule vastleggen als waarde VBA

Status
Niet open voor verdere reacties.

vinemaster

Gebruiker
Lid geworden
23 mei 2012
Berichten
41
Goedemorgen,

Even ter indicatie van mijn (beperkte) skills.
Voor het schrijven van Macro's gebruik ik voor ongeveer 50% de tool; 'Macro opnemen'. Misschien kunnen jullie mij verder helpen.

Ik heb meerdere formules waarvan ik de uitkomsten in mijn macro's meerdere malen nodig heb.
Nu plaats ik deze formules in een cel, ik kopieer het, doe plakken speciaal en sla de waarde van de cel op, zodat ik deze later kan gebruiken.
Dit zijn circa 5 stappen, terwijl het waarschijnlijk ook 1 stap kan.
Als ik een makkelijkere variant zie, dan kan ik het waarschijnlijk ook toepassen op mijn andere formules/macro's, waardoor ik enorm geholpen zal zijn.


Het specifieke voorbeeld: (deel van code)

Code:
Sub Deel_code()

'Invoervelden vastleggen
Dim xCUnaam As String
xCUnaam = Range("A2")
Dim xKlantnaam As String
xKlantnaam = Range("B2")
Dim xSleutel As String
xSleutel = Range("C2")
Dim xLengte As String
xLengte = "=MOD(LEN(C2),4)"
    Range("I2") = xLengte
    Range("I2").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    xLengte = Range("I2")


'Formules toepassen
Dim xNaam1 As String
   xNaam1 = "=VLOOKUP(LEFT(RIGHT(A2,2),1),verander,2,FALSE)"
Dim xKlant1 As String
xKlant1 = "=UPPER(LOWER(LEFT(B2,2)))"


'Uitkomsten formules toekennen
    Range("E2") = xNaam1
    Range("F2") = xKlant1
    Range("E2:F2").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    xNaam1 = Range("E2")
    xKlant1 = Range("F2")


End Sub

Alvast bedankt
 
aanzetje:
xLengte = [MOD(LEN(C2),4)]

zoek eens op application.evaluate
 
Begin eens met een bestandje te plaatsen met wat gegevens; dat het een stuk simpeler kan lijkt mij evident als ik je code bekijk. Zo kun je elke berekening gelijk in VBA doen; het is absoluut niet nodig om dat vanuit een cel te doen.
 
Zo kun je elke berekening gelijk in VBA doen; het is absoluut niet nodig om dat vanuit een cel te doen.

Dat is dus precies mijn vraag :):)

Bekijk bijlage Sample file.xlsx

ff snel een bestandje gemaakt. Maar ik zoek inderdaad een manier om formules in vba te plaatsen ipv in een cel.
Aan de hand van elk willekeurig voorbeeld, hoop ik dat ik begrijp hoe ik het moet toepassen.
 
Aaahhh, ik snap het idee. Is 'dim as' dan niet noodzakelijk. Of is dat dan afhankelijk van wat ik er verder mee wil doen.

xLengte"=MOD(LEN(C2),4)"
xLengte = [MOD(LEN(C2),4)]

Het enige verschil is dus de aanhalingstekens vervangen door rechthoekige haakjes. Toch?


Edit: Goed genoeg, Opgelost
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan