Cellwaarde onthouden en opnemen in een formule Activecell.value

Status
Niet open voor verdere reacties.

BernieBear

Gebruiker
Lid geworden
15 dec 2011
Berichten
14
Beste allemaal,

Ik ben geen programmeur, maar doe mijn best. VBA heb ik geleerd door op fora te zoeken naar oplossingen. De basics ken ik echter niet (nooit een opleiding voor gevolgd)......en daar loop ik nu ook tegenaan. Wie helpt mij verder....

Ik wil iets heel simpels. Ik kopieer een hele regel, omdat ik de aantallen op die regel wil splitsen. (Achtergrondinfo: in een bestelling zijn 100 stuks besteld. Het blijkt dat dit niet op 1 pallet past, dus ik kopieer deze regel, waarbij er op pallet 1 80 stuks komen te staan en pallet 2 nog 20 stuks tbv 2 pakbonnen). Nu wil ik graag dat de waarde van de cel onthouden wordt (in dit voorbeeld 100). Vervolgens wil ik graag in de regel eronder de formule =100 (zijnde de oorspronkelijke waarde) - de inhoud van de cel die erboven staat. Het resultaat start dan met 0 (want 100-100 is 0), maar na het invoeren van bijvoorbeeld 80, moet de regel eronder automatisch 20 berekenen.

Ik heb een poging gedaan met deze code, maar het werkt niet. :rolleyes: Wie helpt mij verder??? :)
Code:
Dim Cellvalue As Integer

    ActiveCell.Offset(0, 11).Select
    
    Cellvalue = ActiveCell.Value
    ActiveCell.Offset(1, 0).FormulaR1C1 = Cellvalue - "=R[-1]C"
 
Laatst bewerkt door een moderator:
Probeer .Select te vermijden in VBA.
Code:
Dim Cellvalue As Integer
Cellvalue = ActiveCell.Offset(, 11).Value
ActiveCell.Offset(1).FormulaR1C1 = "=" & Cellvalue
 
Bedankt, het werkt! Ik zal 'm op opgelost zetten! Dankjewel, ik ben blij :thumb:Ik probeer inderdaad zoveel mogelijk .select te vermijden, maar het lukt me helaas niet altijd even goed goed (Tja grootgebracht met de macrorecorder....). Misschien off topic maar dan de simpele vraag in het vervolg op . select vermijden. Hoe kopieer ik nu zo simpel mogelijk formules naar waarden in een tweede tabblad.
Ik heb er nu
sheets(2).Range("B4:E9").copy Destination:=.sheets(2).Range("B4:E9").Value
van gemaakt, maar dat wil ie toch niet slikken. Mag ik die nog even stellen aan je? (Ik weet t off topic....vergeef me...)
 
Tuurlijk mag je die vraag nog stellen...

Om formules om te zetten naar waardes kan je gemakkelijk zo doen
Code:
[COLOR="#00FF00"]Sheets(2).Range("B4:E9")[/COLOR] = Sheets(2).Range("B4:E9").Value
Zolang je geen .Value, .Text, etc.. achter je bereik zet (groene gedeelte), ziet VBA dit als Object en daar zet je de waardes in van je aangegeven bereik.

En alternatief is natuurlijk de .Copy en .PasteSpecial
Code:
Sheets(2).Range("B4:E9").Copy
Sheets(2).Range("B4:E9").PasteSpecial xlValues
of
Code:
With Sheets(2)
   .Range("B4:E9").Copy
   .Range("B4:E9").PasteSpecial xlValues
End With

De eerste code is natuurlijk het makkelijkst ;)
Succes...
 
Laatst bewerkt:
En nogmaals bedankt! De eerste optie is voor mij het meest werkzaam en heb ik ook direct toegepast. Hier ruimt het een stuk mee op! Nogmaals dank :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan