Wie kann man eine Variable, z.B. Dim Zeile As String, nach einem Durchgang in der For Schleife löschen, damit das neu laden im zweiten Durchgang der For Schleife erzwungen wird.
Besten Dank für ein passenden Tip
Gruss
Thomas
Sub Personal()
Dim KW As String, KT As String, Name As String, Ort As String
Dim i 'Zähler alle Daten einlesen
Dim KWZeile 'Zähler für Zeile der KW suchen
Dim letztezeile As String 'Letzte folle Zeile suchen
For i = 6 To 30 'Zähler alle Daten einlesen
With Worksheets("Kalender")
If .Cells(i, 2) = "" Then End ' Wenn Zeilen leer dann abbrechen
KW = .Cells(i, 2) 'KalenderWoche
KT = .Cells(i, 3) 'KalenderTag
Name = .Cells(i, 4) 'Name
Ort = .Cells(i, 5) 'Ort
End With
MsgBox KW
For KWZeile = 11 To 25 'Zähler für Zeile der KW suchen
With Worksheets("PersonalPlan")
If .Cells(KWZeile, 2) = KW Then 'KW suchen
MsgBox Name
If .Cells(KWZeile, 4).Value = Name Or .Cells(KWZeile, 4).Value = "" Then 'Name oder leere Zeile suchen
MsgBox Name
If .Cells(1, 6) = KT Then
.Cells(KWZeile, 4) = Name
.Cells(KWZeile, 6) = Ort
Exit For
MsgBox KW & " 2"
ElseIf .Cells(1, 7) = KT Then
.Cells(KWZeile, 4) = Name
.Cells(KWZeile, 7) = Ort
Exit For
MsgBox KW & " 2"
End If
Else
letztezeile = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1 'Letzte folle Zeile suchen
MsgBox letztezeile
If .Cells(1, 6) = KT Then
.Cells(letztezeile, 4) = Name
.Cells(letztezeile, 6) = Ort
Exit For
MsgBox KW & " 2"
ElseIf .Cells(1, 7) = KT Then
.Cells(letztezeile, 4) = Name
.Cells(letztezeile, 7) = Ort
Exit For
MsgBox KW & " 2"
End If
End If 'End If von cells kw
End If 'End If von "" Or Name
End With
Next KWZeile
Next i
End Sub
Option Explicit
Sub Personal()
Dim KW As String, KT As String, Name As String, Ort As String
Dim i '...............................Zähler alle Daten einlesen
Dim KWZeile '.........................Zähler für Zeile der KW suchen
Dim letztezeile As String '...........Letzte volle Zeile suchen
For i = 6 To 30 '.....................Zähler alle Daten einlesen
With Worksheets("Kalender")
If .Cells(i, 2) = "" Then End '.Wenn Zeilen leer dann abbrechen
KW = .Cells(i, 2) '...............KalenderWoche
KT = .Cells(i, 3) '...............KalenderTag
Name = .Cells(i, 4) '...............Name
Ort = .Cells(i, 5) '...............Ort
End With
MsgBox KW
'weiterer Code
ob Deine Variablen richtig deklariert sind sollest Du überprüfen.
Integer -32.768 ... +32.767
Long -2.147.483.648 ... +2.147.483.647
Was ist besser?