Pessoal, boa tarde! tudo bem?
Estou retomando minhas aventuras no Excel depois de algum tempo, e como todo bom ser humano, estou enferrujado.
Estou montando uma Macro, planilha anexa, para rateio dos valores de um centro de custo.
Basicamente a Planilha na Sheet1, olha o código em K, procura na base na rateio, inclui uma quantidade X de linhas, e faz o rateio.
Porem, quando vou procurar o valor de K dentro da planilha e armazenar numa variavel Long, ele esta dando erro. segue codigo abaixo e local do erro.
Conseguem me ajudar a resolver isso?
"Erro em Tempo de exceução '91':
A variável do objeto ou a variável do Bloco 'With' não foi definida.
Sub Add()
'
' Macro1 Macro
'
Dim vlrPes As String
Dim incLinha As Byte
Dim wsAtiv As Worksheet
Dim iLastRow As Long
'
Set wsAtiv = ActiveSheet
vlrPes = ActiveCell.Offset(0, 11).Value
Sheets("bases rateio").Select
iLastRow = Range("A:A").Find(What:=vlrPes, LookIn:=xlValues, SearchOrder:=xlByRows).Row '(O ERRO ACONTECE AQUI)
incLinha = Range("B" & iLastRow).Value
wsAtiv.Select
ActiveCell.Offset(1, 0).Rows("1:" & incLinha).EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Offset(-1, 0).Range("A1:D1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1:A" & incLinha).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Range("F1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1:A" & incLinha).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Range("F1:H1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1:A" & incLinha).Select
ActiveSheet.Paste
'Copiando o valor e incluindo na bases rateio
ActiveCell.Offset(-1, -6).Range("A1").Copy
Sheets("bases rateio").Select
Range("F1").PasteSpecial xlValues
'copiando os valores e colando na base original quebrado
Range("F" & iLastRow + 2 & ":F" & iLastRow + 1 + incLinha).Copy
wsAtiv.Select
ActiveCell.Offset(0, -6).Range("A1:A" & incLinha).Select
Selection.PasteSpecial xlValues
' copiando CR
Sheets("bases rateio").Select
Range("A" & iLastRow + 2 & ":A" & iLastRow + 1 + incLinha).Copy
wsAtiv.Select
ActiveCell.Offset(0, 2).Range("A1:b" & incLinha).PasteSpecial xlValues
' copiando projeto
Sheets("bases rateio").Select
Range("C" & iLastRow + 2 & ":C" & iLastRow + 1 + incLinha).Copy
wsAtiv.Select
ActiveCell.Offset(0, 2).Range("A1:b" & incLinha).PasteSpecial xlValues
' deletando a primeira linha
ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Delete
ActiveCell.Offset(incLinha - 1, -8).Select
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 05/03/2018 9:45 am