Notifications
Clear all

erro execução 91

3 Posts
1 Usuários
0 Reactions
647 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

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
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Experimente alterar o trehco com erro conforme segue:

...    Set wsAtiv = ActiveSheet
    vlrPes = ActiveCell.Offset(0, 11).Value
    
    iLastRow = Sheets("bases rateio").Range("A:A").Find(What:=vlrPes, LookIn:=xlValues, SearchOrder:=xlByRows).Row
    incLinha = Range("B" & iLastRow).Value
...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/03/2018 9:58 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo, funcionou perfeitamente !

Eu tinha certeza que era algo idiota, mas não conseguia resolver. Você consegue me dar a solução teórica para este erro acontecer? Apenas uma duvida pessoal!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/03/2018 10:11 am