Meerdere loops verwerken in een code.

Status
Niet open voor verdere reacties.

patRRick900RR

Gebruiker
Lid geworden
24 jun 2013
Berichten
27
Hallo!

Ik werk aan een programma dat onderhoudskosten berekent over 5 jaar. Ik heb een deel van de code geschreven voor het eerste jaar.

Code:
Dim SB_jaar1 As Single
Dim SB_jaar2 As Single
Dim SB_jaar3 As Single
Dim SB_jaar4 As Single
Dim SB_jaar5 As Single

If JCSB_1.Value = True Then SB_jaar1 = aSB.Value * (Worksheets("Var").Range("B12").Value + staffel_PFX)
If UOSB_1.Value = True Then SB_jaar1 = SB_jaar1 + (aSB.Value * (Worksheets("Var").Range("B10").Value))
If SASB_1.Value = True Then SB_jaar1 = SB_jaar1 + aSB.Value * (Worksheets("Var").Range("B13").Value)

Nu wil ik dat SB_jaar2 t/m 5 ook op deze wijze wordt uitgerekend. Hiervoor had ik een loop (for...next) aangemaakt. Echter gelijktijdig moeten de voorwaarden van jaar 2 t/m 5 ook meelopen. Volgens deze code:

Code:
Dim SB_jaar1 As Single
Dim SB_jaar2 As Single
Dim SB_jaar3 As Single
Dim SB_jaar4 As Single
Dim SB_jaar5 As Single

If JCSB_2.Value = True Then SB_jaar2 = aSB.Value * (Worksheets("Var").Range("B12").Value + staffel_PFX)
If UOSB_2.Value = True Then SB_jaar2 = SB_jaar2 + (aSB.Value * (Worksheets("Var").Range("B10").Value))
If SASB_2.Value = True Then SB_jaar2 = SB_jaar2 + aSB.Value * (Worksheets("Var").Range("B13").Value)

idem voor jaar 3, 4 en 5

Met de voorwaarde van een loop lukte het niet. Werkt het wel als ik twee loops aanmaak die allebei van 1 t/m 5 lopen?

Wie wil me helpen en bespaart mij een boel tikwerk! Bvb dank!

Patrick
 
Laatst bewerkt:
Misschien de 'For' functie?
Als:
Code:
For i = 1 To 5
If JCSB_ & i.Value = True Then SB_jaar & i = aSB.Value * (Worksheets("Var").Range("B12").Value + staffel_PFX)
Next

Weet niet of het werkt natuurlijk, want heb geen voorbeeldje. Misschien ff googlen op 'VBA For functie' zodat je weet hoe die eventueel werkt...
 
Laatst bewerkt:
Spaarie, bedankt. Daar was ik mee bezig. Mijn idee was om beide variabelen op te hogen door twee loops in te bouwen. Echter ik krijk het niet werkend....
Mvg Patrick
 
Twee loops ingebouwd, werkt echter niet...

Ik heb nu de volgende code geschreven, echter dit werkt niet.

Code:
For jaarSB = 1 To 5
For jaarprijsSB = 1 To 5
If Me.Controls("JCSB_" & jaarSB).Value = True Then Me.Controls("SB_jaar" & jaarprijsSB).Value = aSB.Value * (Worksheets("Var").Range("B12").Value + staffel_PFX)
Next jaarSB
Next jaarprijsSB

Mijn bedoeking was om:
De variabele JCSB op te hogen van 1 tot en met 5; dit is de voorwaarde of dat jaar onderhoud moet gebeuren. Als er een vinkje staat dat wordt de variable SB_jaar verhoogt met het bedrag uit de cel die ik selecteer.

Wie oh wie kan me helpen?
 
Ga het proberen door lussen te nesten - wie kan me helpen?

Hallo,

Helaas loop nog steeds vast met bovenstaande code. Ga proberen om twee lussen te nesten. Ik wil eerst de eerste lus testen. De code rond het ophogen van JCSB_ kreeg ik in orde, echter ik krijg de code voor het ophogen van SB_jaar en dan 1 t/m 5 niet kloppend.

Vraag: hoe voeg ik "SB_jaar" samen met de uitkomst van de loop (waarde X), zodat ik SB_jaar1, SB_jaar2 enz, enz krijg?

Hoop dat iemand me kan helpen, zodat ik door kan met het programma! Thanks Patrick

Code:
Dim SB_jaar1 As Single
Dim SB_jaar2 As Single
Dim SB_jaar3 As Single
Dim SB_jaar4 As Single
Dim SB_jaar5 As Single
Dim jaarsb As Single
Dim jaarprijsSB As Single
Dim X As Single

For X = 1 To 5
If JCSB_1.Value = True Then SB_jaar "hier moet straks opeenvolgend 1, 2, 3, 4, 5 komen" = aSB.Value * (Worksheets("Var").Range("B12").Value + staffel_PFX)
Next X
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan