Loop in einer For next schleife

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Loop in einer For next schleife

    Hallo zusammen,

    habe ein Problem und sehe grad den Wald vor lauter Bäumen nicht, vllt. kann mir jemand einen Tipp geben oder mir helfen... Es geht um eine Schleife, die nacheinander von i von 7 zu 17 durchlaufen lässt... gleichzeitig ein loop, der quasi diese bedingung abgleicht... ist der loop durch stoppt die funktion, dabei soll dann das gleiche nochmal mit dem nächsten i durchlaufen werden.. habt ihr ne idee??

    beste grüße






    Dim z As Long

    z = 2

    For i = 7 To 17 Step 1

    a = ThisWorkbook.Worksheets(1).Cells(i, 3).Value
    Do Until ThisWorkbook.Worksheets(2).Cells(z, 1) = "###"

    If ThisWorkbook.Worksheets(2).Cells(z, firma1) Like "*" & a & "*" Then
    ThisWorkbook.Worksheets(2).Cells(z, kundenklassespalte).Value = kundenklasse

    End If

    Debug.Print i & z

    z = z + 1
    Loop

    Next i
    also mir ist aufgefallen, dass z beim nächsten for-schleifendurchlauf nicht mehr zurückgesetzet wird... kann daran vllt liegen


    .
    .
    .
    For i = 7 To 17 Step 1
    z = 2'einfach dahin^^
    a = ThisWorkbook.Worksheets(1).Cells(i, 3).Value
    .
    .
    .
    kein thema, problem gelöst?
    btw pass aber mit dem loop auf, ich weiß nicht was du da für daten bearbeitest aber wenn die until-bedingun nicht erfüllt wird hast du ein problem, da du dann in der schleife hängen bleibst.. evtl lässt sich ja ein maximum für z herausfinden und dann das ganze auch über for-schleife lösen oder mittels if-bedingung und "exit loop"..
    Ich würde auf die innere Schleife verzichten und statt dessen mit Find arbeiten.

    Visual Basic-Quellcode

    1. Set sh1 = ThisWorkbook.Worksheets(1)
    2. Set sh2 = ThisWorkbook.Worksheets(2)
    3. For i = 7 To 17
    4. Set c = sh2.Columns(1).Find (sh1.Cells(i,3).Value, LookAt:=xlPart)
    5. If not c is Nothing Then sh2.Cells(c.Row, kundenklassespalte).Formula = kundenklasse
    6. Next i
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --