Verwijzing opnemen in DO LOOP

Status
Niet open voor verdere reacties.

Jacob01

Gebruiker
Lid geworden
7 feb 2009
Berichten
65
Beste mensen,

Ik ben bezig met een code waar ik een loop in wil opnemen.
Eerst worden er diverse variabelen gedefinieerd, stand1, stand2 etc.

Nu moet hij daarna voor alle 'standen' een IF uitvoeren. Eerst had ik per 'stand' een apart stukje code geformuleerd, echter wil ik de code inkorten.
Gezien de variabelen een oplopende nummering hebben wou ik het uitvoeren met een 'Loop'.

Kan ik de loop For 1 to 4 gebruiken om een bewerking uit te laten voeren met de variabelen stand1, daarna met stand2 daarna met stand3 etc.?
Of is het combineren van deze tekst met een loop die weer een variabele omschrijving wordt niet mogelijk?

De onderstaande korte-code oplossing werkt helaas niet, is er een alternatief of is dit niet mogelijk?

Code:
'Voorziening of VG opnemen
   stand1 = T - ort
   stand2 = T + T1 - ort
   stand3 = T + T1 + T2 - ort
   stand4 = T + T1 + T2 + T3 - ort
    
   For ug = 1 To 4
   
   If "stand" & ug > 0 Then
   Cells(34, u + ug - 1) = 10
   Else
   Cells(30, u + ug - 1) = 20
   End If

   Next

Lange code is:

Code:
If stand1 > 0 Then
   Cells(34, u) = stand1
   Else
   Cells(30, u) = stand1
   End If
   
    If stand2 > 0 Then
   Cells(34, u + 1) = stand2
   Else
   Cells(30, u + 1) = stand2
   End If
    
   If stand3 > 0 Then
   Cells(34, u + 2) = stand3
   Else
   Cells(30, u + 2) = stand3
   End If
    
   If stand4 > 0 Then
   Cells(34, u + 3) = stand4
   Else
   Cells(30, u + 3) = stand4
   End If
 
Volgens mij kan het niet op jouw manier. Omdat ik niet weet wat T u of etc. zijn maar even iets gemaakt waarmee het wel kan werken. Anders graag even een voorbeeld bestandje plaatsen.

Code:
Sub VenA()
    stand1 = 7
    stand2 = 9
    stand3 = 11
    stand4 = 3
    ar = Array(stand1, stand2, stand3, stand4)
    For j = 0 To UBound(ar)
        MsgBox ar(j)
    Next
End Sub

Waarbij je de msgbox natuurlijk moet vervangen voor wat jij wil.;)
 
Je kunt de array natuurlijk ook gelijk definiëren.
Dim arr(4)
En dan vullen.
 
Hoe dan? Je maakt de array wel 20% te groot maar dat maakt over het algemeen niet zoveel uit.;)

Eigenlijk vind ik de methode van de TS wel slim. Vang eerst alles in variabelen maak een uitgebreide code om er met <F8> doorheen te wandelen. Als dat allemaal goed gaat dan eens denken aan reductie van de code.

Dit zal denk ik wel werken maar maakt het niet echt leesbaar
Code:
Ar = Array(T - ort, T + T1 - ort, T + T1 + T2 - ort, T + T1 + T2 + T3 - ort)
 
Geachte Tera Honourable Senior Member en Giga Senior,

Mijn dank is groot, zo leer ik er ook nog zelf over nadenken!
 
Hoe dan? Je maakt de array wel 20% te groot maar dat maakt over het algemeen niet zoveel uit.;)
Ik gebruik meestal Option Base 1, dan is het denkproces logischer :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan