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

FormulaR1C1 herkend Double variable niet

Status
Niet open voor verdere reacties.

Ormechno

Gebruiker
Lid geworden
20 sep 2012
Berichten
6
Geachte Excel goeroe's,

Ik loop vast met een macro die ik aan het opstellen ben.

De volgende macro werkt wel, alleen rond hij de functie af, geen getallen achter de komma mogelijk.
Code:
        Dim GewichtHEB As Integer
        GewichtHEB = .Cells(KlantRij, Gewicht).Value

        ActiveCell.Offset(0, 18).FormulaR1C1 = "=(R[0]C[-3]*" & GewichtHEB & "/1000)"

Aangezien ik graag wel de getallen achter de komma mee wil nemen, verander ik de macro in:
Code:
        Dim GewichtHEB As [B]Double[/B]        
        GewichtHEB = .Cells(KlantRij, Gewicht).Value

        ActiveCell.Offset(0, 18).FormulaR1C1 = "=(R[0]C[-3]*" & GewichtHEB & "/1000)"

Nu werkt de formule oppeens niet meer... Ik krijg de volgende melding:
Fout 1004 tijdens uitvoeren:
Door de toepassing of door object gedefineerde fout.

Ik kom er niet uit waarom de functie niet werkt.... Hopelijk iemand anders wel
 
Code:
Dim GewichtHEB As Long

Doe eens de test.
 
Hoi Cobbe bedankt voor je snelle reactie:thumb: Maaaaaar, met Long wordt het helaas ook afgerond... Ik heb trouwens ook al de volgende Functie geprobeerd (met As Double):

Code:
ActiveCell.Offset(0, 18).FormulaR1C1 = GewichtHEB

Hiermee wordt wel het getal met de decimalen achter de komma weergeven... Voeg ik de excel functie toe met de & tekens werkt het niet meer. Ik snap er niks van:confused:
 
Is dit een oplossing?

Code:
 Dim GewichtHEB As Double        

GewichtHEB = .Cells(KlantRij, Gewicht).Value
ActiveCell.Offset(0, 18) = Format(ActiveCell.Offset(0, 15) * GewichtHEB / 1000, "0.00")
 
Laatst bewerkt:
Nee helaas, daarbij rond hij het ook af.

Ik heb een simpele versie van mijn bestand gemaakt, zodat je het misschien wat beter kan begrijpen. Op blad 2 kan snel een een regel worden toegevoegt. Dit kan door een van de blauwe cellen te selecteren, op de knop te drukken en het formulier in te vullen. Hiervoor haald hij gegevens uit de tabel op Blad1, waarbij komma getallen voorkomen.

Bekijk bijlage Map1.xlsm
 
Dus toch.....
 

Bijlagen

  • Map1(cobbe).xlsm
    26,1 KB · Weergaven: 13
Toch niet....;) Maar ik moet wel bekennen dat ik de versie die ik uploade niet helemaal klopte:eek:. Hieronder een betere versie.

Bekijk bijlage Map1(ormechno)(2).xlsm

Er is te zien dat "Kg p Stuk" op 20,00 komt te staan, terwijl het 20,4 zou moeten worden...
 
Ja die 20 komt uit blad1?

Leg eens precies uit wat je wanneer moet ophalen en uitrekenen.
Je zet als eerste HEB daar kan je dan wel niet mee zoeken om die 20 te krijgen.
 
Als je Type 100, lengte 1000 (mm) en aantal 2 invoert in het formulier, berekent hij het gewicht met behulp van een kiloprijs de meter. De kiloprijs de meter is afhankelijk van het type welke is ingevoerd en wordt opgehaald uit de tabel op blad 1. De kiloprijs voor type 100 is 20,4, maar ook op de manier die jij voorstelt gaat hij rekenen met een afgeronde 20. Die 0,4 kilo verschil is vervelend, zeker bij wat meer lengte en grotere aantallen kan dit oplopen tot een grote fout.

Dus de 20,4 komt uit de tabel, maar wordt door de macro afgerond tot 20.:(
 
Als je die dimensionering van GewichtHEB weglaat neemt hij wel de 20,40 over.

Ik denk dat de rest van de code zal wel ok zijn?
 
Ja inderdaad! Het weglaten van het dimensioneren zorgt ervoor dat het wel goed gaat. Ik dacht dat variabelen altijd moesten worden gedimensioneerd, dus had dat nog niet geprobeerd. Helaas werkt het niet met mijn oude FormulaR1C1, maar dit is in ieder geval een (beetje aparte) oplossing.:thumb: Ik snap nog steeds niet waarom mijn oorspronkelijke methode niet functioneert, maar kan in ieder geval verder.

Hartstikke bedankt voor je tijd Cobbe!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan