Página 1 de 1

Codigo VBA funciona no debug (F8) mas nao roda no automatico

Enviado: 06 Fev 2017 às 22:26
por Felipevitalino
Por algum motivo meu codigo roda normal, conforme desejado quando executo passo a passo com o F8.
Quando coloco para rodar a partir de um clique em uma imagem (botao) roda de forma indesejada.
Alguem sabe como resolver?
Obrigado
Segue o codigo
Código: Selecionar todos
Sub BaixarVenda()

' Macro1 Macro
'

pecas = 0

    Sheets("Venda").Select
    Range("A1").Select
    
If IsEmpty(Range("C7").Value) = False Then
    'venda de um item
    Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
    Sheets("Venda").Range("C4").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Venda").Range("C7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
    Sheets("Venda").Range("C9").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
    Sheets("Venda").Range("C11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
    Sheets("Venda").Range("C13").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats

  pecas = pecas + 1
End If

If IsEmpty(Range("E7").Value) = False Then
   'venda de dois itens
    
    Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
    Sheets("Venda").Range("C4").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Venda").Range("E7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
    Sheets("Venda").Range("E9").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
    Sheets("Venda").Range("E11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
    Sheets("Venda").Range("E13").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    
    
pecas = pecas + 1
End If

If IsEmpty(Range("G7").Value) = False Then
    'venda de 3 itens
    
    Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
    Sheets("Venda").Range("C4").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Venda").Range("G7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
    Sheets("Venda").Range("G9").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
    Sheets("Venda").Range("G11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
    Sheets("Venda").Range("G13").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats

pecas = pecas + 1
End If

If IsEmpty(Range("I7").Value) = False Then
   'venda de 4 itens
   
    Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
    Sheets("Venda").Range("C4").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Venda").Range("I7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
    Sheets("Venda").Range("I9").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
    Sheets("Venda").Range("I11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
    Sheets("Venda").Range("I13").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    
pecas = pecas + 1
End If

If IsEmpty(Range("K7").Value) = False Then
    'venda de 5 itens
    
    Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
    Sheets("Venda").Range("C4").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Sheets("Venda").Range("K7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
    Sheets("Venda").Range("K9").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
    Sheets("Venda").Range("K11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
    Sheets("Venda").Range("K13").Copy
    Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
   
pecas = pecas + 1
End If

NumeroVenda
    
Sheets("Venda").Select
MsgBox "Venda finalizada"
'ResetVendas
End Sub

Codigo VBA funciona no debug (F8) mas nao roda no automatico

Enviado: 07 Fev 2017 às 06:55
por Reinaldo
Pela rotina aparentemente nada estranho, não ha como saber se efetua o desejado ou não sem poder acompanhar na pratica em seu modelo.

Re: Codigo VBA funciona no debug (F8) mas nao roda no automa

Enviado: 07 Fev 2017 às 20:29
por Felipevitalino

Codigo VBA funciona no debug (F8) mas nao roda no automatico

Enviado: 07 Fev 2017 às 21:10
por Reinaldo
Aparentemente sua rotina/planilha está coerente. os dados de vendas são registrados normalmente na historico.

Re: Codigo VBA funciona no debug (F8) mas nao roda no automa

Enviado: 08 Fev 2017 às 05:37
por Felipevitalino
O problema é o seguinte, ao baixar a venda de um produto (usando o botão) são criadas duas linhas no histórico, quando baixo dois produtos não há erro. Para três produtos ele baixa apenas dois.
Esses problemas não ocorrem quando uso o f8

Codigo VBA funciona no debug (F8) mas nao roda no automatico

Enviado: 08 Fev 2017 às 12:54
por Reinaldo
Testei com uma, depois duas, depois 3, depois 4 e finalmente 5 itens, tudo foi gravado conforme esperado no histórico. Unico incoveniente e o "piscar" da tela quee facimente corrigido com um screen.update.
Não consegui ver/reproduzir o relatado

Codigo VBA funciona no debug (F8) mas nao roda no automatico

Enviado: 08 Fev 2017 às 20:01
por Felipevitalino
Depois de testar em outro computador acredito que possa ser algo com minha maquina. Obrigado pelos testes e melhorias.