Bom dia, tenho duas tabelas 1 ( Lançamento MAP) e tabela 2 ( Base DATA), na tabela 1 tenho apenas uma linha com umas 70 colunas onde é digitado os dados para uma data especifica, a tabela 2 deve receber esses dados, ela contém todas as datas do ano e umas 130 colunas, sendo as 70 que combinam mais algumas no meio com várias fórmulas.
Meu problema é o seguinte, não consigo um código que encontre a data correta na tabela 2, e copie a informação nas colunas idênticas, o mais perto que achei foi esse abaixo que cola na data correta, mas vai sequencial.
Exemplo das colunas nas duas tabelas em anexo, vermelho tabela 1, azul tabela 2.
Agradeço a ajuda, já me falaram para usar Find ou Application.Match mas não sei como.
Sub NewNameandCostCenter()
Dim start As Double
start = Timer
Dim countOfChangedRows As Long
'set rngMap array
Dim rngMap As Range
Set rngMap = Worksheets("Lançamento captação").Range("A3:g4")
'set rngData array
Dim rngData As Range
Set rngData = Worksheets("Base balanço Hídrico").Range("a6:k800")
Dim aMap As Variant
aMap = rngMap.Value
Dim aData As Variant
aData = rngData.Value
Dim mapRow As Long
Dim datarow As Long
Dim mapcol As Long
For mapRow = LBound(aMap, 1) To UBound(aMap, 1)
For datarow = LBound(aData) To UBound(aData)
'Check the key matches in both tables
If aData(datarow, 1) = aMap(mapRow, 1) Then
countOfChangedRows = countOfChangedRows + 1
'Assumes the columns in map and data match
For mapcol = LBound(aMap, 2) + 1 To UBound(aMap, 2)
aData(datarow, mapcol) = aMap(mapRow, mapcol)
Next mapcol
End If
Next datarow
Next mapRow
rngData.Value = aData
Debug.Print countOfChangedRows & " of "; UBound(aData, 1) & " rows updated in " & Timer - start & " seconds"
End Sub
Postado : 16/02/2021 8:06 am