Ich möchte ein VBA-Script haben, dass von einer Jahrestabelle (mit "Worksheet_Change(ByVal Target As Range)") automatisch in unterschiedliche Monatstabellen überträgt.
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column >= 7 And Target.Column <= 37) Then
Sheets("Januar 23").Range(Target.Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 38 And Target.Column <= 65) Then
Sheets("Februar 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-31).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 31 And Target.Column <= 96) Then
Sheets("März 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-59).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 97 And Target.Column <= 126) Then
Sheets("April 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-90).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 127 And Target.Column <= 157) Then
Sheets("Mai 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-120).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 158 And Target.Column <= 187) Then
Sheets("Juni 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-151).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 188 And Target.Column <= 218) Then
Sheets("Juli 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-181).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 219 And Target.Column <= 249) Then
Sheets("August 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-212).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 250 And Target.Column <= 279) Then
Sheets("September").Range(Target.Offset(rowOffset:=0, columnOffset:=-243).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 280 And Target.Column <= 310) Then
Sheets("Oktober 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-273).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 311 And Target.Column <= 340) Then
Sheets("November 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-304).Address).Value = Range(Target.Address).Value
ElseIf (Target.Column >= 341 And Target.Column <= 371) Then
Sheets("Dezember 23").Range(Target.Offset(rowOffset:=0, columnOffset:=-334).Address).Value = Range(Target.Address).Value
Else
MsgBox "ERROR Feld nicht im Monat angegeben"
End If
End Sub
Alles klappt soweit. Nur jetzt habe ich gemerkt, dass wenn ich die Zelle über ein paar Monate ziehe nur in den 1. Monat (wo die Eintragung ist) überträgt (Da warscheinlich nur für die 1. Zelle die if-Abfrage eintritt).
Jetzt wolle ich fragen, wie man es machen kann, dass für jede Zelle einzeln die If-Abfrage und das Script ausgeführt wird.
Ich würde mich freuen, wenn mir jemand helfen könnte
LG
|