Notifications
Clear all

Erro 1004 Tempo de execução

10 Posts
4 Usuários
0 Reactions
1,406 Visualizações
(@gio_1911)
Posts: 4
New Member
Topic starter
 

Prezados amigos, preciso de uma ajuda! Criei um codigo em VBA para copiar e colar os dados de pedidos de clientes de uma planilha para outra. E cada vez que a macro roda preenche a planilha de historico na linha de baixo.

Acontece que ele dá erro na linha em negrito, só que se finalizo o depurador e executo a macro novamente ela roda corretamente...

O erro que acontece é o 1004- Tempo de execucao - erro de definicao de aplicativo ou de definicao de objeto

Sub Confirmar_Pedido()
'
' Confirmar_Pedido Macro
'
' Atalho do teclado: Ctrl+Shift+C

       
Dim cont As Long

cont = Range("AU1").Value

Sheets("Historico").Select
ActiveSheet.Range("B3").Select
ActiveCell.Offset(cont, 3).Select

            
   Sheets("Pedido").Select
   Range("L6:M6").Select
   Selection.Copy
   Sheets("Historico").Select
   [b]Cells(cont, 2).Select[/b]
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("M4").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 4).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("L8:M8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 5).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("S1").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 7).Select
   ActiveSheet.Paste
   Sheets("Pedido").Select
   Range("L10:O10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, Cool.Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("P10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 13).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("Q10:S10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 14).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("L12:M12").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 17).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("N12").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 19).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Pedido").Select
   Range("R6:S6").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 20).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Carretilhas").Select
   Range("D8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 22).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Columns("T:T").ColumnWidth = 15
   Cells(cont, 23).Select
   Sheets("Carretilhas").Select
   Range("E8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 24).Select
   Sheets("Carretilhas").Select
   Range("D9").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Carretilhas").Select
   Range("E9").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 25).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 3
   ActiveWindow.ScrollColumn = 5
   ActiveWindow.ScrollColumn = 6
   Cells(cont, 26).Select
   ActiveCell.FormulaR1C1 = ""
   Sheets("Carretilhas").Select
   Range("D10").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Carretilhas").Select
   Range("E10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 27).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 28).Select
   Sheets("Carretilhas").Select
   Range("D11").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Carretilhas").Select
   Range("E11").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 29).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 30).Select
   ActiveWindow.ScrollColumn = 8
   ActiveWindow.ScrollColumn = 9
   ActiveWindow.ScrollColumn = 14
   ActiveWindow.ScrollColumn = 15
   ActiveWindow.ScrollColumn = 18
   Sheets("Varas").Select
   Range("D8").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Varas").Select
   Range("E8").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 31).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Cells(cont, 32).Select
   Sheets("Varas").Select
   Range("D9").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Varas").Select
   Range("E9").Select
   Application.CutCopyMode = False
   Selection.Copy
   Cells(cont, 33).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Cells(cont, 31).Select
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 33).Select
   Selection.Style = "Currency"
   Columns("AG:AG").EntireColumn.AutoFit
   Columns("AG:AG").ColumnWidth = 12
   Cells(cont, 34).Select
   Sheets("Varas").Select
   Range("D10").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Varas").Select
   Range("E10").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 35).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 36).Select
   Sheets("Varas").Select
   Range("D11").Select
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Cells(cont, 37).Select
   Sheets("Varas").Select
   Range("E11").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Cells(cont, 38).Select
   Sheets("Varas").Select
   Range("D12").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Cells(cont, 39).Select
   Sheets("Varas").Select
   Range("E12").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   ActiveCell.FormulaR1C1 = ""
   Cells(cont, 39).Select
   Sheets("Varas").Select
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Cells(cont, 40).Select
   Sheets("Varas").Select
   Range("D13").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   ActiveSheet.Paste
   Sheets("Varas").Select
   Range("E13").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 41).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   ActiveWindow.ScrollColumn = 20
   ActiveWindow.ScrollColumn = 21
   ActiveWindow.ScrollColumn = 23
   ActiveWindow.ScrollColumn = 24
   ActiveWindow.ScrollColumn = 25
   Sheets("Varas").Select
   Range("D14").Select
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 42).Select
   ActiveSheet.Paste
   Cells(cont, 43).Select
   Sheets("Varas").Select
   Range("E14").Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Cells(cont, 44).Select
   Sheets("Pedido").Select
   Range("S15").Select
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Selection.Style = "Currency"
   Cells(cont, 45).Select
   Sheets("Pedido").Select
   ActiveWindow.SmallScroll Down:=15
   Range("S30").Select
   Selection.Copy
   Sheets("Historico").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Application.CutCopyMode = False
   Selection.Style = "Currency"
   Sheets("Pedido").Select
   ActiveWindow.SmallScroll Down:=-3
   Range("M17").Select
   Selection.Copy
   Sheets("Historico").Select
   Cells(cont, 46).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False

End Sub
 
Postado : 07/06/2017 8:05 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Este comando cont = Range("AU1").Value atribui à variável "cont" o conteúdo da célula "AU1" da planilha ativa no momento em que o código é disparado. Verifique o conteúdo daquela célula, que deverá ser maior ou igual a 1.

Osvaldo

 
Postado : 07/06/2017 10:08 am
(@gio_1911)
Posts: 4
New Member
Topic starter
 

O valor da célula AU1 é sempre maior que 1... esse não é o problema :(... mas obrigado pelo retorno

 
Postado : 07/06/2017 10:12 am
(@osvaldomp)
Posts: 858
Prominent Member
 

sugestão - disponibilize uma amostra do seu arquivo Excel com o código instalado

Osvaldo

 
Postado : 07/06/2017 10:16 am
(@gio_1911)
Posts: 4
New Member
Topic starter
 

Infelizmente não posso pois os dados na planilha são confidenciais

 
Postado : 07/06/2017 10:22 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Obviamente não se deve tornar público dados confidenciais.
Leia de novo a minha sugestão - UMA AMOSTRA DO SEU ARQUIVO. Amostra é diferente do arquivo original.
Preparar uma amostra sem dados confidenciais, claro, demanda um certo trabalho, mas o interesse é seu.

Osvaldo

 
Postado : 07/06/2017 10:28 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

gio_1911,

Boa tarde!

Complementando o que o colega Osvaldomp sugeriu, você deve anexar aqui mesmo no fórum um arquivo exemplo, compactado com .ZIP, com dados fictícios, todavia, com layout (disposição dos dados) exatamente igual, inclusive nome das abas, do seu arquivo original.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/06/2017 11:33 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como os colegas ja disseram, sem um modelo fica dificil, uma vez que sua rotina é enorme e várias referências a objetos.

Veja que pleo inicio de sua rotina, e como você já citou acima, podemos supor que o Valor da Variável cont = Range("AU1").Value, como não está referenciando de qual aba, está pegando na aba ativa.

Depois seleciona a aba "Historico", seleciona o Range B3 e utilizando Offset seleciona 3 colunas a direita e linhas de acordo com o valor de cont e não faz nenhuma ação a nao ser a seleção, pois nas linhas seguintes, voce seleciona a aba "Pedido", o Range "L6:M6", copia, volta para aba "Historico" seleciona mais 2 colunas a direita e linhas de acordo com a variavel cont e cola, e assim vai até o fim, muitas repetiçoes e linhas que poderiam ser simplificadas, então para encontrar o erro só com o modelo.

Uma dica sobre as simplificações, você pode trocar estas linhas :

ActiveSheet.Range("B3").Select
ActiveCell.Offset(cont, 3).Select

por esta :

Range("B3").Offset(cont, 3).Select

, já que selecionou a aba antes, não precisa referencia-la, e tambem não gosto muito de utilizar ActiveCell.

Resumindo, percebeu porque o ideal é olhar o modelo, que só pela leitura das linhas estaremos respondendo por suposições por não conhecer a estrutura de seu modelo.

[]s

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

 
Postado : 07/06/2017 12:38 pm
(@gio_1911)
Posts: 4
New Member
Topic starter
 

Amigos! Desculpem pela demora.... Aí está o arquivo de referência.. Aguardo retorno de voces..

Desde já agradeco

 
Postado : 08/06/2017 9:11 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

gio_1911,

Boa tarde!

Como os colegas Osvaldomp e Mauro Coutinho j´[a haviam comentado, o problema do seu código estava no valor da célula Au1 que é atribuído a variável cont logo no começo do código. No momento que você clicava no botão na aba Pedidos, o código ia pegar o valor da célula AU1 na aba Pedidos e não na aba histórico como deveria ser. Desse modo, a única providência a ser adotada é transferir a linha de comando onde você atribui o valor da célula AU1 a variável Cont para a linha de comando imediatamente posterior a instrução Sheets("histórico").Select.

No arquivo abaixo já não ocorre mais o erro.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/06/2017 11:27 am