AndreB
09-22-2021, 08:00 AM
Dear Gurus,
I have a table in a sheet and another in a second sheet.
What I'm trying to perform is to copy data from the first table to the second one.
I've tried with different codes and finally I have recorded a macro, taken the code and copied it into my routine, but even in this case I'm not able to do what I want.
Here below the code from the macro:
Sheets("Baseline").Select
    Range("Table3[Resource]").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Actual and Forecast").Select
    Range("Table7[Resource]").Select
    ActiveSheet.Paste
The procedure fails on the Range("Table7[Resource]").Select line with an 1004 run-time error ("Method 'Range' of object'_Worksheet failed").
Any help on how I can achieve it?
Thanks in advance,
A.
Logit
09-22-2021, 08:05 AM
If you post your workbook with the code included ( do not include any confidential information in the sheets), you will most likely receive an answer
much quicker.  :yes
Logit
09-22-2021, 11:25 AM
Not certain this is accurate but give it a go :
Private Sub BaselineCosts_Click()
Dim extr, month, year, checkm, checky As String
Dim colCount, rowCount As Integer
Dim ws2 As Worksheet
Dim tableh, tables, tabler, tablec, tabled As ListObject
Dim i, j, w, z As Long
Dim cFormula, str As String
Set ws2 = Worksheets("Baseline")
Set tableh = ws2.ListObjects("Table4")
Set tabled = ws2.ListObjects("Table3")
Set ws1 = Worksheets("Resources")
Set tabler = ws1.ListObjects("Table2")
Set ws3 = Worksheets("Actual and Forecast")
Set tables = ws3.ListObjects("Table7")
Set tablec = ws3.ListObjects("Table79")
Application.ScreenUpdating = False
With tableh.DataBodyRange
colCount = .Columns.Count
rowCount = .Rows.Count
End With
With tableh
                
For i = 7 To colCount
    For j = 2 To rowCount + 1
    
    str = Right(.HeaderRowRange(i).Value, 4)
    cFormula = "=(XLOOKUP([@Resources],Table2[Resources],XLOOKUP(RIGHT(Table4[[#Headers],[" & .HeaderRowRange(i).Value & "]],4),Table2[[#Headers],[" & str & "]],Table2[" & str & "])))*(XLOOKUP([@Resources],Table2[Resources],XLOOKUP(Table4[[#Headers],[" & .HeaderRowRange(i).Value & "]],Table3[[#Headers],[" & .HeaderRowRange(i).Value & "]],Table3[" & .HeaderRowRange(i).Value & "])))"
    '.Range.Cells(j, i) = cFormula
    
    .Range.Cells(j, i).Select
    Selection.NumberFormat = _
        "_([$€-x-euro2] * #,##0.00_);_([$€-x-euro2] * (#,##0.00);_([$€-x-euro2] * ""-""??_);_(@_)"
    Range("Table4[[#Totals],[" & .HeaderRowRange(i).Value & "]]").Select
    
    Next j
    
    .ListColumns(.HeaderRowRange(i).Value).TotalsCalculation = xlTotalsCalculationSum
        Selection.NumberFormat = "_([$€-x-euro2] * #,##0.00_);_([$€-x-euro2] * (#,##0.00);_([$€-x-euro2] * ""-""??_);_(@_)"
Next i
End With
    Sheets("Resources").Select
    'Sheets("Sheet1").ListObjects("A_Table").Range.Select
    Sheets("Resources").ListObjects("Table2").Range.Select
    'Range("Table2").Select
    Selection.Copy
    
    Sheets("Actual and Forecast").Select
    'Sheets("Actual and Forecast").Range("Table7[Actual and Forecast]").Select
    Sheets("Actual and Forecast").ListObjects("Table7").Range.Select
    ActiveSheet.Paste
Application.ScreenUpdating = True
'Application.CutCopyMode = False
End Sub
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.