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

Wie kan men helpen de code te ontleden

Status
Niet open voor verdere reacties.
Code:
Dim laatsteregel1, laatsteregel2, legeregel, teller As Long

Dit is niet goed. De eerste 3 variabelen zijn nu gedeclareerd als Variant, en niet als Long, zoals velen denken als ze deze syntax bekijken.


Dim c As Range: c is nl. een bereik.

‘ dit wil zeggen dat de variabele laatsteregel1 gelijk is aan het bereik kolom A, snap niet
‘goed wat die row op het einde van de regel betekent.
‘kan dit ook op een andere manier gezegd worden of niet?

laatsteregel1 is het rijnummer van de laatste niet-lege cel in kolom A.
Zo is het een redelijk simpele en veel gebruikte manier. Het is het equivalent van manueel naar A65536 te gaan en dan Ctrl-pijltje naar boven te drukken

voor elke variabele b in het werkblad Lijst in het bereik A2:A65536

Neen, voor elke cel. En niet tot rij A65536, maar tot de rij met de laatste niet-lege cel. Normaal gezien is dat veel minder dan 65536.

Code:
‘Zoek de variabele b in heel het werkblad en ken het resultaat toe aan de variabele c

Zoek de inhoud van de cel die we aanwijzen via de variabele b, niet in heel het werkblad, maar enkel in kolom A, en dan enkel nog in dat deel tot aan de laatste cel in kolom A. ALS er iets gevonden wordt, dan wijzen we de cel waar dat gevonden werd, toe aan de variabele c.

Code:
‘als de variabele c niet gevonden word in het werkblad samenvatting dan

als de inhoud van cel b niet gevonden wordt dan ...

Code:
‘de variabele legeregel begint in het werkblad nieuwe rekeningen in cel A1 + 1, dus A2

Waarom A2? Dat kan, maar dan zou er niets in die kolom A staan. Je begint in de laatste cel, en gaat zo naar boven tot de laatste niet-lege cel. Dat kan A2 zijn, maar hoeft helemaal niet zo te zijn.

Code:
‘ik snap niet goed de bovenstaande regel, dus hoe het niet gekende rekeningnummer naar het
‘werkblad “nieuwe rekeningen word gecopieerd, snap niet goed hoe ik het moet lezen
‘snap de b.Row niet goed

De cel in kolom A, met rij gelijk aan de rij van de cel b, wordt gekopieerd naar de eerstvolgende lege cel in kolom A van het blad Nieuwe rekeningen.

Vóór de copy staat hetgeen gekopieerd wordt, erachter naar waar gekopieerd moet worden.

Code:
‘snap de b.Row niet goed

Tja, duidelijker kan toch niet?

Wigi

PS: probeer de dt-fouten eens te verbeteren aub. Want dat stoort echt wel.
 
Wigi,

Bedankt voor de hulp, dit is allemaal genoteerd.

Groeten, Mark
 
Code:
Dim laatsteregel1, laatsteregel2, legeregel, teller As Long

Dit is niet goed. De eerste 3 variabelen zijn nu gedeclareerd als Variant, en niet als Long, zoals velen denken als ze deze syntax bekijken.


Kan je dat even verder verduidelijken aub.
 
Kan je dat even verder verduidelijken aub.

Hoi Finch

Dit is de situatie;

Dim laatsteregel1, laatsteregel2, legeregel, teller As Long

De komma is een scheidingsteken hier. En als er niets bij staat, dan wordt de variabele gedeclareerd als Variant (dus een soort als allesomvattende - inefficiënte - soort van variabele). Als je dit dus leest in de gedachte dat de komma geen scheidingsteken is, dan zou je denken dat al die variabelen als Long gedclareerd worden. Dat is dus niet zo. Die "As Long" moet je 4 keer herhalen.

Zo, hopelijk is het hiermee wel duidelijk.

Wigi
 
Hoi Finch

Dit is de situatie;



De komma is een scheidingsteken hier. En als er niets bij staat, dan wordt de variabele gedeclareerd als Variant (dus een soort als allesomvattende - inefficiënte - soort van variabele). Als je dit dus leest in de gedachte dat de komma geen scheidingsteken is, dan zou je denken dat al die variabelen als Long gedclareerd worden. Dat is dus niet zo. Die "As Long" moet je 4 keer herhalen.

Zo, hopelijk is het hiermee wel duidelijk.

Wigi

Bedankt voor de uitleg. Dat wist ik niet. Nochtans zie je veel die constructie in vba code.
 
Bedankt voor de uitleg. Dat wist ik niet. Nochtans zie je veel die constructie in vba code.

Dan is die code niet goed geschreven, en kan het efficiënter. Het zal heel vaak wel werken, maar dus niet op de "beste" manier.

Prettig weekend alvast.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan