for-Schleife überspringt einzelne if Verzweigungen
08.02.2019 16:20:22
Luca
Ich bin wie viele hier wahrscheinlich noch raltiv neu bei VBA. (Excel for Mac; Version 16.21)
ich habe ein kleines Problem mit meiner For-Schleife.
Und zwar hab ich in einem anderen Programm bereits Kalenderwochen berechnet und aufgezählt, und wollte jetzt zu den passenden Kws noch den Monat in die Zelle links daneben schreiben. (Z.B. Kw9 -März, Kw14-April etc.).
Soweit so gut.. Programm läuft einigermaßen. Nur werden einzelne If-Verzweigungen übersprungen und deshalb der Monat nicht ausgegeben, sowohl bei der for-schleife als auch bei Do-Until...
Der Code, den ich mal dafür geschrieben habe ist: (ist wahrscheinlich nicht der schönste, aber sollte eigentlich funktionieren, zumindest finde ich keinen Fehler, und des wird auch keiner angezeigt. Ich hoffe, dass mir jemand bei meinem Problem helfen kann.. Vielen Dank im Voraus!
Sub match_months()
'Variablen
Dim Kw As Integer
Dim Monat As Range
Dim x, y As Integer
'Start- und Endwert festelegen
x = Range("H8").Value
y = Range("H34").Value
'Programm
Kw = 1
'(Do-Until-) (for-) Schleife um jeden Wert zwischen 1 und 49 abzutasten
'Do
For Kw = x To y
Set Monat = Columns(8).Find(what:=Kw)
If Not Monat Is Nothing Then 'Wenn Monat einen Wert hat
If Monat = 1 Then
Cells(Monat.Row, 7).Value = "Januar"
End If
If Monat = 5 Then
Cells(Monat.Row, 7).Value = "Februar"
End If
If Monat = 9 Then
Cells(Monat.Row, 7).Value = "März"
End If
If Monat = 14 Then
Cells(Monat.Row, 7).Value = "April"
End If
If Monat = 18 Then
Cells(Monat.Row, 7).Value = "Mai"
End If
If Monat = 23 Then
Cells(Monat.Row, 7).Value = "Juni"
End If
If Monat = 27 Then
Cells(Monat.Row, 7).Value = "Juli"
End If
If Monat = 31 Then
Cells(Monat.Row, 7).Value = "August"
End If
If Monat = 36 Then
Cells(Monat.Row, 7).Value = "September"
End If
If Monat = 40 Then
Cells(Monat.Row, 7).Value = "Oktober"
End If
If Monat = 45 Then
Cells(Monat.Row, 7).Value = "November"
End If
If Monat = 49 Then
Cells(Monat.Row, 7).Value = "Dezember"
End If
End If
' Kw = Kw + 1
'Loop Until Kw = 49
Next Kw
End Sub