Hey Guys,
I tried to copy data from one sheet to another due to a commandbutton. If i ran the program on the target sheet, the error message 1004 appears, although running the code on the source sheet, everthing works fine. Can someone help me with that?
This id the Code that i use
Private Sub CopyCurrencyRates()
Dim Answer As VbMsgBoxResult
Dim NextFreeRow As Long
Dim LastUpdatedMonth As Long
Dim LastRow As Long
Dim Starcell As Range
Dim LastCell As Long
LastUpdatedMonth = Format(Date, "m") + 5 '+4 Wegen der zusätzlich eingefügten Spalten
LastCell = Worksheets("Data_Source").UsedRange.Rows.Count
NextFreeRow = Worksheets("Target Sheet").UsedRange.Rows.Count + 1
LastRow = Worksheets("Target Sheet").UsedRange.Rows.Count
StartCell = Worksheets("Data_Source").Cells(4, LastUpdatedMonth).Select
Answer = MsgBox("Are you sure to add the data for" & " " & MonthName(LastUpdatedMonth - 6) & " " & "to the Target Sheet?", vbYesNoCancel, "Add Data to Target-Sheet")
If Answer = vbYes Then
'HMA
'Get Data
Worksheets("Data_Source").Range(Cells(4, LastUpdatedMonth), Cells(LastCell, LastUpdatedMonth)).Copy
Worksheets("Target Sheet").Range("F" & NextFreeRow).PasteSpecial
'Get Currency
Worksheets("Data_Source").Range(Cells(4, 1), Cells(LastCell, 1)).Copy
Worksheets("Target Sheet").Range("C" & NextFreeRow).PasteSpecial
'Get Cl.
Worksheets("Data_Source").Range(Cells(4, 2), Cells(LastCell, 2)).Copy
Worksheets("Target Sheet").Range("A" & NextFreeRow).PasteSpecial
'get Exc.Currency
Worksheets("Data_Source").Range(Cells(4, 3), Cells(LastCell, 3)).Copy
Worksheets("Target Sheet").Range("D" & NextFreeRow).PasteSpecial
'get ExchangeRate
Worksheets("Data_Source").Range(Cells(4, 4), Cells(LastCell, 4)).Copy
Worksheets("Target Sheet").Range("B" & NextFreeRow).PasteSpecial
'Get Date
Worksheets("Data_Source").Range(Cells(4, 5), Cells(LastCell, 5)).Copy
Worksheets("Target Sheet").Range("E" & NextFreeRow).PasteSpecial
'get RF
Worksheets("Data_Source").Range(Cells(4, 6), Cells(LastCell, 6)).Copy
Worksheets("Target Sheet").Range("G" & NextFreeRow).PasteSpecial
Worksheets("Target Sheet").Range("H" & NextFreeRow).PasteSpecial
End If
End Sub
I tried to copy data from one sheet to another due to a commandbutton. If i ran the program on the target sheet, the error message 1004 appears, although running the code on the source sheet, everthing works fine. Can someone help me with that?
This id the Code that i use
Private Sub CopyCurrencyRates()
Dim Answer As VbMsgBoxResult
Dim NextFreeRow As Long
Dim LastUpdatedMonth As Long
Dim LastRow As Long
Dim Starcell As Range
Dim LastCell As Long
LastUpdatedMonth = Format(Date, "m") + 5 '+4 Wegen der zusätzlich eingefügten Spalten
LastCell = Worksheets("Data_Source").UsedRange.Rows.Count
NextFreeRow = Worksheets("Target Sheet").UsedRange.Rows.Count + 1
LastRow = Worksheets("Target Sheet").UsedRange.Rows.Count
StartCell = Worksheets("Data_Source").Cells(4, LastUpdatedMonth).Select
Answer = MsgBox("Are you sure to add the data for" & " " & MonthName(LastUpdatedMonth - 6) & " " & "to the Target Sheet?", vbYesNoCancel, "Add Data to Target-Sheet")
If Answer = vbYes Then
'HMA
'Get Data
Worksheets("Data_Source").Range(Cells(4, LastUpdatedMonth), Cells(LastCell, LastUpdatedMonth)).Copy
Worksheets("Target Sheet").Range("F" & NextFreeRow).PasteSpecial
'Get Currency
Worksheets("Data_Source").Range(Cells(4, 1), Cells(LastCell, 1)).Copy
Worksheets("Target Sheet").Range("C" & NextFreeRow).PasteSpecial
'Get Cl.
Worksheets("Data_Source").Range(Cells(4, 2), Cells(LastCell, 2)).Copy
Worksheets("Target Sheet").Range("A" & NextFreeRow).PasteSpecial
'get Exc.Currency
Worksheets("Data_Source").Range(Cells(4, 3), Cells(LastCell, 3)).Copy
Worksheets("Target Sheet").Range("D" & NextFreeRow).PasteSpecial
'get ExchangeRate
Worksheets("Data_Source").Range(Cells(4, 4), Cells(LastCell, 4)).Copy
Worksheets("Target Sheet").Range("B" & NextFreeRow).PasteSpecial
'Get Date
Worksheets("Data_Source").Range(Cells(4, 5), Cells(LastCell, 5)).Copy
Worksheets("Target Sheet").Range("E" & NextFreeRow).PasteSpecial
'get RF
Worksheets("Data_Source").Range(Cells(4, 6), Cells(LastCell, 6)).Copy
Worksheets("Target Sheet").Range("G" & NextFreeRow).PasteSpecial
Worksheets("Target Sheet").Range("H" & NextFreeRow).PasteSpecial
End If
End Sub