Fehler: Überspringen einer Schleife
02.05.2022 14:38:20
Jonas
Ich möchte aus einem Sheet ("Hilfsblatt") gewisse Werte auslesen. Sagen wir in einer Spalte steht der Name in der zweiten ein Status zu diesem und in einer dritten eine Gruppierung.
Nun gibt es zu jeder Gruppierung ein extra Blatt in welchem die Namen und deren Status stehen.
Es soll dann in der ersten Tabelle der Status händisch aktualisiert werden. Auf Knopfdruck soll dann der Status zu allen Namen in den dazugehörigen Tabellenblättern der Gruppierungen aktualisiert werden.
Es nimmt sich also den Namen und die Zeile dessen. Entscheidet welches Sheet er nimmt. Sucht in diesem nach den Namen und ändert den Status, welcher in der selben Zeile steht.
Ich hab nun das Problem, dass in meinem folgenden Code irgendwie die Schleife nur einmal durchlaufen wird und alles was hinter dem End If steht wird ignoriert.
Ich danke für eure Hilfe, der Code ist folgender:
letztezeile = Worksheets("Hilfsblatt").Cells(Rows.Count, 1).End(xlUp).Row
Dim i As Integer
For i = 2 To letztezeile
name = Range("A" & i)
status = Worksheets("Hilfsblatt").Cells(i,3).Value
If Worksheets("Hilfsblatt").Cells(i, 2).Value = "*Gruppe2*" Or Worksheets("Hilfsblatt").Cells(i, 2).Value.Value = "*G2*" Then
variablesheet= "WorksheetGruppe2"
ElseIf Worksheets("Hilfsblatt").Cells(i, 2).Value = "*Gruppe0*" Or Worksheets("Hilfsblatt").Cells(i, 2).Value = "*G0*" Then
variablesheet= "WorksheetGruppe0"
ElseIf Worksheets("Hilfsblatt").Cells(i, 2).Value = "*Gruppe5*" Or Worksheets("Hilfsblatt").Cells(i, 2).Value = "*G5*" Then
variablesheet= "WorksheetGruppe5"
ElseIf Worksheets("Hilfsblatt").Cells(i, 2).Value = "*Gruppe1*" Or Worksheets("Hilfsblatt").Cells(i, 2).Value = "*G1*" Then
variablesheet= "WorksheetGruppe1"
Else:
MsgBox ("Für mindestens einen Wert wurde kein passendes Tabellenblatt gefunden. Das Übertragen wurde abgebrochen")
Exit For
End If
namenszeile = Sheets(variablesheet).Columns("A:A").Find(What:=name, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
atchCase:=False, SearchFormat:=False).Row
Worksheets(variablesheet).Cells(namenszeile, 3).Value = status
Next i