02.11.2016, 15:16
Hallo,
ich möchte, dass es egal ist ob man in eine Zelle ein Datum oder eine KW im Format "KW 35 2016" eingibt, es soll immer das Datum ausgegeben werden.
Dazu habe ich mir mit meinen beschränkten VBA Kenntnissen folgenden Code zusammengebastelt:
Problem ist, dass, wenn der Code genau so wie oben ist, nichts passiert und wenn ich das "If Left(RC, 2) = "KW" Then" weg lasse setzt es zwar die Formel ein, allerdings bleiben "Jahr" und "KW" stehen und werden nicht ersetzt.
Was mache ich falsch?
Schon mal danke für die Hilfe!
Viele Grüße
ich möchte, dass es egal ist ob man in eine Zelle ein Datum oder eine KW im Format "KW 35 2016" eingibt, es soll immer das Datum ausgegeben werden.
Dazu habe ich mir mit meinen beschränkten VBA Kenntnissen folgenden Code zusammengebastelt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Column
Case 7
If Left(RC, 2) = "KW" Then
'Ist das "RC" an der Stelle richtig? Ich will auf die gerade beschriebene Zelle zugreifen. Ich weiß dass man mit "RC[1]" auf die Nachbar Zelle zugreift, "RC[0]" akzeptiert er nicht.
Dim KW As String
Dim Jahr As String
'Ich wollte es als Integer machen, da der Teil ja immer Zahlen sind, dann kam aber eine Fehlermeldung.
KW = Mid(RC, 4, 2)
Jahr = Right(RC, 4)
Cells(Target.Row, 6).FormulaR1C1 = "= Date(Jahr,1,7*KW - 3 - Weekday(Date(Jahr,,),3))"
'Eigentlich will ich es wieder in Spalte 7 haben (ist das möglich?) aus Testzwecken ist es erst mal Spalte 6.
End If
End Select
Application.EnableEvents = True
End Sub
Was mache ich falsch?
Schon mal danke für die Hilfe!
Viele Grüße