0

I would like to have a VBA script that automatically transfers from a year table (with "Worksheet_Change(ByVal Target As Range)") to different month tables.

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

Everything works so far. Only now have I noticed that if I move the cell over a few months, it only transfers to the 1st month (where the entry is) (because the if query probably only occurs for the 1st cell).

Now I want to ask how to make the if query and script run for each cell individually.

I would be happy if someone could help me

Eugene Astafiev
  • 47,483
  • 3
  • 24
  • 45
Geocrack
  • 1
  • 2

0 Answers0