Notifications
Clear all

Gerar vendas

16 Posts
2 Usuários
0 Reactions
2,163 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Preciso de uma ajuda .

Tenho o codigo abaixo que se refere a duas abas de minha planila.

Plan Clientes e Plan Venda1

Acontece que B1 = nome da aba Venda1, e o comando abaixo executa sua funcao se baseando por esta Range("B1").
Mas eu quero que faca a procura do cliente, que esta em Range("L4") da Planilha Venda1 e nao pelo nome desta aba.

'  Gerar Vendas ao Cliente

Dim nome1
nome1 = Range("B1").Value

Dim WC, WR As Worksheet

Dim Cont As Long
Dim Venda As String
Application.ScreenUpdating = False

Dim WT     As Worksheet

Set WC = Worksheets("CLIENTES")
Set WR = Worksheets(nome1)

Venda = WR.Range("B1").Value
       
Sheets("CLIENTES").Visible = True
    WC.Select
    WC.Range("B4").Select
    
    Do While ActiveCell <> ""
    
If ActiveCell = Venda Then
    
    ActiveCell.Offset(0, 15).Select
    Cont = ActiveCell
    Cont = Cont + 1
    ActiveCell = Cont
Else
    ActiveCell.Offset(1, 0).Select
    
End If
      
Loop
    WR.Select
 
Postado : 28/08/2016 5:42 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Tenta assim

Eu nao entendi bem onde vc esta procurando, mas tenho a impressão que sua busca esta na coluna errada

Sub Venda()

Dim nome1
nome1 = Range("B1").Value

Dim WC, WR As Worksheet

Dim Cont As Long
Dim Venda As String
Application.ScreenUpdating = False

Dim WT     As Worksheet

Set WC = Worksheets("CLIENTES")
Set WR = Worksheets(nome1)

Venda = WR.Range("B1").Value
       
Sheets("CLIENTES").Visible = True
    WC.Select
    WC.Range("L4").Select
    
    Do While ActiveCell <> ""
    
If ActiveCell.Value = Venda Then
    
    ActiveCell.Offset(0, 15).Select
    Cont = ActiveCell
    Cont = Cont + 1
    ActiveCell = Cont
Else
    ActiveCell.Offset(1, 0).Select
    
End If
      
Loop
    WR.Select


End Sub

Disponibilize um modelo que fica facil ajustar

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/08/2016 6:15 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Ola amigao, segue anexo

Assim eu ja havia feito, mando anexo

 
Postado : 28/08/2016 7:04 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Na verdade o valor nao esta na celula L4 mas na L6 conforme seu exemplo

Veja Anexo

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/08/2016 7:16 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Grato amigo, detalhe a toa e ebatendo aqui a cabeca, mas uma vez agradecido !

Andre

PS: Se puder dar uma ajudinha neste topico agradeço tb, pois estara ajudando tb ao amigo que me ajudou no cadastro de clentes. Pois a imagem nao esta atualizando.

viewtopic.php?f=10&t=21505&start=30

E tb este aqui que pra mimiria ajudar em muito a divulgar as minhas vendas

viewtopic.php?f=10&t=21623

Boa Noite e grato de novo

Andre

 
Postado : 28/08/2016 7:37 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Boa Tarde

MPrudencio, teria como dar baixa nos itens vendidos ?

Mando em anexo a tabela de novo.

Grato

Andre

 
Postado : 29/08/2016 8:16 am
(@mprudencio)
Posts: 2749
Famed Member
 

O controle de estoque deve ser feito com o registro da venda em uma tabela a parte e a tabela estoque somente calcula as saidas

Olha um exemplo simples sem macros pra vc ter uma ideia do funcionamento.

Da pra lançar os itens vendidos por vba e o estoque ser atualizado.

Embora seja um arquivo xlsm esta sem nenhum codigo vba.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 01/09/2016 6:52 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

O controle de estoque deve ser feito com o registro da venda em uma tabela a parte e a tabela estoque somente calcula as saidas

Olha um exemplo simples sem macros pra vc ter uma ideia do funcionamento.

Da pra lançar os itens vendidos por vba e o estoque ser atualizado.

Embora seja um arquivo xlsm esta sem nenhum codigo vba.

Ola amigo, estou adaptando no meu projeto aqui e te falo ok, mas vou ver se consigo aplicar tb os produtos mais vendidos , se nao conseguir de certo vou te incomodar de novo ok /

Grato

Anrde

 
Postado : 04/09/2016 3:10 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Amigao MPrudencio, ficou joia !

Agora veja que uso o codigo abaixo, porem quero inverter a coisa, ao inves de pegar a ultima linha disponivel, quero empurrar pra baixo e manter os dados atualizados na linha A2, tem como me mudar este codigo ai e me passar ?

Teria como dentro do seu modelo me dar uma nocao de quais produtos mais vendidos e os menos vendidos ?

Set Ws3 = Sheets("LANCAMENTOS") 'Referencia a guia Mais Vendidos como Ws3
Set Dest3 = Ws3.Range("A2").Range("A20000").End(xlUp).Offset(1, -1) 'Encontra a ultima linha da guia comissão (definida como Dest)
Range("D72:H72").Copy 'Copia o intervalo
Dest3.PasteSpecial xlPasteValues 'Cola valores na guia Comissão
Application.CutCopyMode = False

Grato Andre

 
Postado : 04/09/2016 4:42 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Achei como fazdr, Mas meu codigo ficou grande como sempre, entao teria como me dar o mesmo usando um Loop pra economizar ?

Grato

Andre

 Sub Teste()
   
    Sheets("Venda1").Select
    Range("D72:H72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
 If Range("D73").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D73:H73").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D74").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D74:H74").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If
 
  If Range("D75").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D75:H75").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If
 
  If Range("D76").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D76:H76").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If
 
  If Range("D77").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D77:H77").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If
 
   If Range("D78").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D78:H78").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D79").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D79:H79").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If
 
   If Range("D80").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D80:H80").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D81").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D81:H81").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D82").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D82:H82").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D83").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D83:H83").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D84").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D84:H84").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

   If Range("D85").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D85:H85").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
  Else
GoTo Fim_Estoque
End If

  If Range("D86").Value <> "" Then
 
    Sheets("Venda1").Select
    Range("D86:H86").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("LANCAMENTOS").Select
    Range("A2").Select
    Selection.Insert Shift:=xlDown
    
GoTo Fim
Fim:



 End Sub
 
Postado : 04/09/2016 5:20 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

deu erro acima, ale do Goto FIm , ja ajeitei aqui mesmo assim, da erro ao colar,

Sub Teste()

Sheets("Venda1").Select
Range("D72:H72").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

If Range("D73").Value <> "" Then

Sheets("Venda1").Select
Range("D73:H73").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D74").Value <> "" Then

Sheets("Venda1").Select
Range("D74:H74").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D75").Value <> "" Then

Sheets("Venda1").Select
Range("D75:H75").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D76").Value <> "" Then

Sheets("Venda1").Select
Range("D76:H76").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D77").Value <> "" Then

Sheets("Venda1").Select
Range("D77:H77").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D78").Value <> "" Then

Sheets("Venda1").Select
Range("D78:H78").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D79").Value <> "" Then

Sheets("Venda1").Select
Range("D79:H79").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D80").Value <> "" Then

Sheets("Venda1").Select
Range("D80:H80").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D81").Value <> "" Then

Sheets("Venda1").Select
Range("D81:H81").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D82").Value <> "" Then

Sheets("Venda1").Select
Range("D82:H82").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D83").Value <> "" Then

Sheets("Venda1").Select
Range("D83:H83").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D84").Value <> "" Then

Sheets("Venda1").Select
Range("D84:H84").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D85").Value <> "" Then

Sheets("Venda1").Select
Range("D85:H85").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown

Else
GoTo Fim_Estoque
End If

If Range("D86").Value <> "" Then

Sheets("Venda1").Select
Range("D86:H86").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("LANCAMENTOS").Select
Range("A2").Select
Selection.Insert Shift:=xlDown
Else: End If

GoTo Fim_Estoque
Fim_Estoque:

End Sub

 
Postado : 04/09/2016 5:58 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Manda o codigo com o arquivo, que fica mais facil editar o codigo.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 04/09/2016 6:03 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

pera ai entao

 
Postado : 04/09/2016 6:03 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

no anexo

 
Postado : 04/09/2016 6:24 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

acertei aqui era um erro de

Erro em tempo de execução -2147417848 (80010108) "ERRO DE AUTOMAÇÃO. O objeto chamado foi desconectado de seus clientes".

Era uma formulario no meio do camino no calculo., mas ja aceretei aqui.

Mas agora tenho outro problema, pois se jogo as linhas pra baixo, altera o comando abaixo.

De

=SOMASES('LANCAMENTOS SAIDA'!$D$2:$D$505;'LANCAMENTOS SAIDA'!$B$2:$B$505;B8;'LANCAMENTOS SAIDA'!$E$2:$E$505;"ENTRADA")-SOMASES('LANCAMENTOS SAIDA'!$D$2:$D$505;'LANCAMENTOS SAIDA'!$B$2:$B$505;B8;'LANCAMENTOS SAIDA'!$E$2:$E$505;"SAIDA")

para

=SOMASES('LANCAMENTOS SAIDA'!$D$3:$D$505;'LANCAMENTOS SAIDA'!$B$3:$B$505;B8;'LANCAMENTOS SAIDA'!$E$3:$E$505;"ENTRADA")-SOMASES('LANCAMENTOS SAIDA'!$D$3:$D$505;'LANCAMENTOS SAIDA'!$B$3:$B$505;B8;'LANCAMENTOS SAIDA'!$E$3:$E$505;"SAIDA")

se insiro mais uma linha entao

=SOMASES('LANCAMENTOS SAIDA'!$D$4:$D$505;'LANCAMENTOS SAIDA'!$B$4:$B$505;B8;'LANCAMENTOS SAIDA'!$E$4:$E$505;"ENTRADA")-SOMASES('LANCAMENTOS SAIDA'!$D$4:$D$505;'LANCAMENTOS SAIDA'!$B$4:$B$505;B8;'LANCAMENTOS SAIDA'!$E$4:$E$505;"SAIDA")

E agora como resolvo este problema??

POis optei em manter a ultima atualizacao na primeira linha, se eu optar em colar na abaixo da ultima linha nao teria este problema, mas queria manter em cima mesmo, tem solucao ?

Andre

 
Postado : 04/09/2016 7:28 pm
Página 1 / 2