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

VBA For next met End

Status
Niet open voor verdere reacties.

Jeroen123456

Gebruiker
Lid geworden
3 jul 2007
Berichten
115
Ik wil binnen een "For next" lus een "If" opnemen.

Zodra de If 1 keer is uitgevoerd, wordt deze If niet nogmaals uitgevoerd.
Iemand een idee?

For i = 1 To totaalaantalcontainers
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
aantalregelspercontainer = WorksheetFunction.CountIf(Selection, i)
eindregel = aantalregelspercontainer + 9
If aantalregelspercontainer > 50 Then
Windows("Packinglist (versie 06-07-2007).xls").Activate
Sheets("Cntr " & i).Activate
Rows("59:" & eindregel).Select
Selection.Insert Shift:=xlDown
End If
Next i


Ik mag geen "next i" toevoegen binnen de "if" en mag "end if" niet weglaten.
 
Dag Jeroen,

Bedoel je dat je nadat If aantal > 50 is uitgevoerd de for next lus moet worden beëindigd? Dan is onderstaande toevoeging van Exit For correct

Code:
  For i = 1 To totaalaantalcontainers
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    aantalregelspercontainer = WorksheetFunction.CountIf(Selection, i)
    eindregel = aantalregelspercontainer + 9
    If aantalregelspercontainer > 50 Then
      Windows("Packinglist (versie 06-07-2007).xls").Activate
      Sheets("Cntr " & i).Activate
      Rows("59:" & eindregel).Select
      Selection.Insert Shift:=xlDown
      Exit For
    End If
  Next i
Gegroet,

Axel
 
Beste Axel,

Ik bedoel juist andersom.

De loop moet blijven lopen tot aan totaalaantalcontainers.
Bij iedere afzonderlijke loop moet hij bij een aantalregelspercontainer groter als 50 de commandos uit de if uitvoeren, zo niet gewoon de volgende loop doorlopen.

De eerste keer dat de macro aan de voorwaarde voldoet worden de commando's van de if uitgevoerd, maar daarna niet meer.

bvd.

Groeten

Jeroen
 
Misschien heb je hier iets aan:


startpunt:

if ...........then
uitvoercode
goto startpunt (ga terug, herhaal vanaf dit punt)
else
uitvoercode
goto startpunt ( of van dit punt zelf kiezen)
end if

gr edwin
 
Dag Jeroen,

Stuur eens een voorbeeld. Ik begrijp niets van je code dus leg eens uit wat precies de bedoeling is.

Gegroet,

Axel.
 
Jeroen 123456,

een teller ingebouwd die wordt opgehoogd als de teller 0 is en aantalregelspercontainer groter is dan 50. Daarna wordt de teller met 1 opgehoogd en wordt de code tussen de
IF Then niet meer uitgevoerd omdat t meer dan 0 is geworden.

Code:
Dim t As Integer
t = 0
For i = 1 To totaalaantalcontainers
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    aantalregelspercontainer = WorksheetFunction.CountIf(Selection, i)
    eindregel = aantalregelspercontainer + 9
    If t = 0 And aantalregelspercontainer > 50 Then
        t = t + 1
        Windows("Packinglist (versie 06-07-2007).xls").Activate
        Sheets("Cntr " & i).Activate
        Rows("59:" & eindregel).Select
        Selection.Insert Shift:=xlDown
    End If
Next i



werkt dit?


Koosl
 
Beste Heren,

Bedankt voor jullie hulp, ik ben weer een stuk wijzer.

Uiteindelijk bleek dat als de macro in de IF terecht kwam er niet werd teruggeschakeld naar de originele sheet, daardoor liep de IF maar 1x en daarna niet meer. Dit heb ik nu toegevoegd en nu werkt het.

Groeten,

Jeroen
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan