VÁRIAS DÚVIDAS EM V...
 
Notifications
Clear all

VÁRIAS DÚVIDAS EM VBA/MACROS

23 Posts
2 Usuários
0 Reactions
3,920 Visualizações
(@beto-stanley)
Posts: 14
Active Member
Topic starter
 

É o seguinte, estou tentando ajudar minha irmã para ela ter um controle melhor em sua lanchonete.

Estou precisando criar 3 macros diferentes, e para você entender melhor o que vou explicar, estou anexando 3 arquivos do Excel: MESAS, CADASTRO PRODUTOS e VENDAS ACUMULADAS.

Você vai ver que no arquivo MESAS tem várias abas cada uma para cada mesa ou balcão, e também verá que quando você coloca um código (1 a 10) na coluna A, vai aparecer a descrição do produto e seu valor unitário nas colunas C e D respectivamente. E quando colocamos a quantidade na coluna B, vai aparecer o valor total do item na coluna E, a data na coluna F e a respectiva mesa na coluna G, e dessa forma vai aparecendo o valor total da mesa na coluna H.
Eis abaixo o que quero nas macros:

MACRO 1, quero que, ao apertar o botão “ZERAR MESA” ela:
- copie tudo o que tiver nessa mesa (célula A2 até G100)
- cole especial como VALORES na primeira linha vazia da planilha do arquivo VENDAS ACUMULADAS.
- apague tudo o que tiver nessa mesa que foi zerada (célula A2 até B100)

MACRO 2, quero que, ao apertar o botão “DESFAZER” ela:
- na planilha do arquivo VENDAS ACUMULADAS copie as últimas células das colunas A e B (cód. E quant.) referente a última mesa ou balcão que foi zerada.
- cole esses valores nas colunas A e B (cód. E quant.) nas células das colunas A e B da aba da respectiva mesa da planilha do arquivo MESAS.
- apague as últimas células das colunas A até G referente a essa última mesa que foi zerada.

Exemplo:
Você vai ver que na planilha VENDAS ACUMULADAS que, a última mesa que foi zerada é a MESA3, que vai da célula A16 até G19. Ou seja, eu estou na aba MESA3 e apertei o botão “ZERAR MESA” e isso gerou esses dados nas células que mencionei agora.
Mas aí eu percebo que não queria zerar essa mesa agora, então eu aperto o botão “DESFAZER” e ele copia os dados das células A16 até B19 da planilha do arquivo VENDAS ACUMULADAS, cola esses dados nas células nas células A2 até B5 da aba MESA3 da planilha do arquivo MESAS e, logo depois apaga as células A16 até G19 referente a última MESA3 na planilha do arquivo VENDAS ACUMULADAS.

Exemplo ilustrado:

Aba MESA3 da planilha do arquivo MESAS, após apertar o botão “ZERAR MESA”:

cod. quant. descrição valor unit. valor total DATA MESA TOTAL MESA
0,00

Planilha do arquivo VENDAS ACUMULADAS, após o apertar o botão “ZERAR MESA”:

cod. quant. descrição valor unit. valor total DATA MESA/BALCÃO
1 2 coca lata 2,00 4,00 02/02/12 MESA1
10 3 pizza 3,10 9,30 02/02/12 MESA1
3 1 coca garafinha 1,50 1,50 02/02/12 MESA1
2 3 coca 600ml pet 2,90 8,70 02/02/12 MESA4
5 1 salgado 2,40 2,40 02/02/12 MESA4
9 1 suco natural 3,00 3,00 02/02/12 MESA4
1 4 coca lata 2,00 8,00 02/02/12 MESA4
10 3 pizza 3,10 9,30 02/02/12 MESA2
5 1 salgado 2,40 2,40 02/02/12 MESA2
1 1 coca lata 2,00 2,00 02/02/12 MESA2
6 4 trident 1,00 4,00 02/02/12 MESA2
7 1 suco 2,80 2,80 02/02/12 MESA2
5 3 salgado 2,40 7,20 02/02/12 BALCÃO2
3 1 coca garafinha 1,50 1,50 02/02/12 BALCÃO2
1 2 coca lata 2,00 4,00 02/02/12 MESA3
5 3 salgado 2,40 7,20 02/02/12 MESA3
10 1 pizza 3,10 3,10 02/02/12 MESA3
6 1 trident 1,00 1,00 02/02/12 MESA3

Aba MESA3 da planilha do arquivo MESAS, após apertar o botão “DESFAZER”:

cod. quant. descrição valor unit. valor total DATA MESA TOTAL MESA
1 2 coca lata 2,00 4,00 02/02/12 MESA3 15,30
5 3 salgado 2,40 7,20 02/02/12 MESA3
10 1 pizza 3,10 3,10 02/02/12 MESA3
6 1 trident 1,00 1,00 02/02/12 MESA3

Planilha do arquivo VENDAS ACUMULADAS, após o apertar o botão “DESFAZER”:

cod. quant. descrição valor unit. valor total DATA MESA/BALCÃO
1 2 coca lata 2,00 4,00 02/02/12 MESA1
10 3 pizza 3,10 9,30 02/02/12 MESA1
3 1 coca garafinha 1,50 1,50 02/02/12 MESA1
2 3 coca 600ml pet 2,90 8,70 02/02/12 MESA4
5 1 salgado 2,40 2,40 02/02/12 MESA4
9 1 suco natural 3,00 3,00 02/02/12 MESA4
1 4 coca lata 2,00 8,00 02/02/12 MESA4
10 3 pizza 3,10 9,30 02/02/12 MESA2
5 1 salgado 2,40 2,40 02/02/12 MESA2
1 1 coca lata 2,00 2,00 02/02/12 MESA2
6 4 trident 1,00 4,00 02/02/12 MESA2
7 1 suco 2,80 2,80 02/02/12 MESA2
5 3 salgado 2,40 7,20 02/02/12 BALCÃO2
3 1 coca garafinha 1,50 1,50 02/02/12 BALCÃO2

E assim por diante, se eu for agora na aba BALCÃO2 e apertar o botão DESFAZER, ele fará a mesma coisa com os dados do BALCÃO2.

Obs: essa macro “DESFAZER” só poderá fazer isso se a MESA3 for a última mesa que eu zerei. Por exemplo, se no exemplo acima eu apertar o botão “DESFAZER” nas mesas 1, 4 ou 2 ele não irá fazer esse processo e dará uma mensagem no MSGBOX “essa operação não é possível nesse momento”.

MACRO 3, quero que, ao apertar o um dos botões da parte MOVER PARA MESA, ela:
- copie os dados das células A2 até B100, da mesa onde estou
- cole esses dados nas mesmas células da planilha da mesa de destino que foi escolhida, se essa mesa estiver vazia
- apague os dados das céluas A2 até B100 da mesa de origem
- caso a mesa de escolhida para destino esteja ocupada, ou seja, já tenha dados nela, então deve aparecer mensagem: “mesa ocupada, escolha outra mesa”

Bom, é isso.
Espero que eu tenha conseguido explicar o que eu queria pra você e que você possa me ajudar.

 
Postado : 02/02/2012 9:03 am
(@beto-stanley)
Posts: 14
Active Member
Topic starter
 

Boa noite Edson, tudo bom?

Edson, esse código faz o que?

Private Sub Worksheet_Activate()
Dim ws As Worksheet

Set ws = Sheets("ACUMULADO")

lin = ws.Range("A1048576").End(xlUp).Row
mesa = ws.Cells(lin, 7)
guia = ActiveSheet.Name

ActiveSheet.Shapes(8).Visible = False

If mesa <> guia Then
ActiveSheet.Shapes(8).Visible = False
Else
ActiveSheet.Shapes(8).Visible = True
End If

End Sub

Outra coisa, não entendi isso aqui:

Certifique-se de que a forma é a 8, se não, substitua o número em cada um dos códigos pelo número que pode ser verificado na Caixa de Nomes.

E também não sei fazer isso aqui:

Quanto às outras mesas e balcões, nos Módulos, inclua os códigos conforme abaixo, alterando o nome da macro e do texto atribuído a n:

Sub Mesa6()
n = "MESA6"

Call Transferir(n)

End Sub

Como deu para perceber, eu não sei praticamente nada de macros e vba, uma das únicas coisas que sei é atribuir uma macro a um botão. Então, se der pra dar mais uma força agradeço imensamente!!!

Grande abraço!

Beto

 
Postado : 15/03/2012 5:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Disponibiliza o novo arquivo...

 
Postado : 17/03/2012 2:35 pm
(@beto-stanley)
Posts: 14
Active Member
Topic starter
 

Disponibiliza o novo arquivo...

Boa noite Edson!

Postei a planilha aqui, e também mandei ela por email pra você.

O que esqueci de falar também é que, na hora em que coloco o código na planilha pelo caminho que você me passou (Botão direito sobre o nome da guia/Exibir código/Colar), naquela parte “MOVER PARA A MESA”, some o botão da MESA 5. Fiz esse procedimento nas mesas 1, 2 e 3 aí eu vi que estava acontecendo isso e parei.

Realmente não sei o que aprontei lá, RS...

Desde já agradeço imensamente a sua ajuda!

Grande abraço!

Beto

 
Postado : 17/03/2012 6:49 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Brother,

precisa mesmo daquele monte de botões?? Não podemos abrir uma Formulário com as opções possíveis??

Vou montar um exemplo e postar aqui...

 
Postado : 18/03/2012 4:45 pm
(@beto-stanley)
Posts: 14
Active Member
Topic starter
 

Boa noite Edson!

Agora que eu vi que vc escreveu aqui.
Os botões que vc está achando bastante, são os botões "mover para a mesa" ?
Acho que entendi esse formulário que vc falou, se for o que estou pensando pode ser sim, sem problema!

Fico no aguardo,

Um grande abraço e obrigado mais uma vez!

Beto.

 
Postado : 26/03/2012 6:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Adaptei a opção de Userform que lista as Mesas/Balcões habilitadas para transferência, eliminando uma lista de botões para cada guia.

Faça muitos testes para ver se atende.

Abraço.

 
Postado : 05/04/2012 4:54 am
(@beto-stanley)
Posts: 14
Active Member
Topic starter
 

Boa noite Edson, tudo bem?

Não sei se está lembrado de mim, vc me ajudou E MUITO naquela planilha das mesas que estava fazendo para a lanchonete da minha irmã.

Ela estava perfeita, mas antes de ela começar a usar na lanchonete, fiz algumas mudanças nela, pois tive que colocar o tipo de venda (cartão, dinheiro, ticket, etc) e também umas msg Box.
Por exemplo:
Se eu clicar em ZERAR MESA tiver algum item sem quantidade ou quantidade zero, ou sem código então aparece uma msg Box “item sem código ou quantidade na linha xx”
Se eu clicar em ZERAR MESA e não coloquei o tipo de venda, então tem uma msg Box “favor informar o tipo de venda”
E se eu clicar em ZERAR MESA e o tipo de venda for o cód. 10 (FIADO) então aparece a msg Box “favor informar o nome do cliente”

Assim, a planilha está funcionando perfeitamente, só que fica travando direto, erro que acontece com mais frequencia aparece o seguinte :
"microsoft office excel está tentando recuperar suas informações... isso pode levar vários minutos."
Esse erro ocorre muitas vezes ao dia, do nada ele trava ou quando eu vou salvar ele trava...

O outro erro as as vezes acontece quando vou trocar de mesa, apertando o botão MOVER PARA MESA...
aparece o seguinte:
"Erro em tempo de execução 75: não foi possível encontrar o objeto especificado."
e tem 3 botões FIM, DEPURAR e AJUDA.

Então Edson, segue o arquivo em anexo.

Será que você sabe o que pode estar acontecendo??? Cara, me dá uma luz pelo amor de Deus!!!

Grande abraço e mais uma vez MUITO OBRIGADO pela ajuda!

 
Postado : 07/07/2012 6:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Posta o anexo...

Se o arquivo for grande, favor compactá-lo...

 
Postado : 07/07/2012 8:08 pm
Página 2 / 2