Ahhhh... Ok, tijd voor een lesje VBA....
In VBA moet je de computer PRECIES vertellen wat die moet doen. Als je dat niet doet, zal je niet het gewenste resultaat verkrijgen zoals je hebt bemerkt.
Kijk goed wat je doet in je procedure met het wegschrijven naar je lijst. je geeft als opdracht...
Sheets("kas").Select
Hiermee geef je aan dat de sheet "Kas" je actieve werkblad wordt. Alle regels die je er dan onder zet..
Cells(v, 8).Value = Sheets("ontlening").Range("J16") + Range("j17")
...kijken daar dus naar.
Om bovenstaande regel even te ontleden. Je begint met "Cells(v,
.Value". Omdat je hier géén sheet-object aan hebt toegevoegd, gaat de computer er van uit dat je dan op de actieve sheet zit (dus: Kas). Vervolgens haal je héél netjes de eerste waarde op van de sheet "Ontlening" door het sheet-object vooraf te laten gaan aan het Range-object (
Sheets("ontlening").Range("J16")). Maarrrr.... dan ga je optellen. En dát doe je nu zónder het sheet-object (
+ Range("j17")). Mag JIJ 1x raden wáár VBA de waarde vandaan tracht te halen? Juist, van de sheet "Kas". Enne.. da's net niet wat je wilde. Ook hier moet je dus het sheet-object toevoegen aan de opdracht.
Leer netjes te programmeren door goed je opdrachten op te bouwen. Dus neem minimaal altijd het sheet-object mee als je naar een bereik verwijst. Dat houdt je code ook een heel stuk leesbaarder.
Ga hier eens mee spelen. Daar leer je meer van dan dat ik nu een kant en klaar workbook voor je neerzet (lijkt mij zo).