Notifications
Clear all

Trabalhando com 2 abas diferentes na mesma planilha

8 Posts
2 Usuários
0 Reactions
1,143 Visualizações
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Olá pessoal,

por favor me digam se é possível a seguinte implementação, se possível, trabalharei nela e trarei possíveis dúvidas ao fórum.

Na minha empresa possuo uma única planilha com 1 aba de compras de produtos e 1 aba de estoque desses mesmos produtos (planilha em anexo, abas "compras" e "estoque". Como são 2 abas diferentes, não sei se consigo trabalhar com tratamento de dados entre essas 2 abas.
Por favor, me digam se algum dos passos abaixo é impossível. Caso impossível, por favor, me dêem uma idéia alternativa. Caso possível, por favor me digam como trabalhar os dados entre as planilhas, e possíveis dúvidas retornarei ao fórum.

Ao digitar a entrada de um novo item na aba "compras" (coluna "item"), ele automaticamente aparece na próxima linha vazia da coluna "item" da aba "estoque" (caso ainda não esteja na coluna "item" da aba de estoque), caso o produto já figure na coluna "item" da "aba" estoque nada é feito, se não for preenchido o número de unidades adquiridas na coluna "unidades" da "compras", ele soma "0" na coluna de "unidades" do estoque para o correspondente item, porém caso eu coloque 3 unidades por exemplo, ele soma 3 unidades (preservando o valor anterior).

Além da implementação acima, o algoritmo trata o preço de venda do item na aba "estoque", preservando sempre o maior preço de venda, por exemplo, se o preço de venda do item "a" adquirido em 2-1-1900 era de 10,00, e no dia 8-1-1900 foram adquiridas mais 4 unidades com preço de venda 30,00, automaticamente, a linha da coluna "preço de venda" correspondente ao item "a" na "aba" estoque é alterado para 30,00, preservando sempre o maior valor do preço de venda.

Leia as regras, os arquivos devem ser compactados!!!!!!!!!!!!!!!!!!!!!!!!!!!11


Abraços.

 
Postado : 09/02/2013 8:16 pm
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

em anexo.

 
Postado : 10/02/2013 12:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Paiva

Baixe a planilha e veja se é isto que vc deseja:

Dê retorno.

Se a resposta foi útil, clique na mãozinha do lado da ferramenta Citar.

Um abraço.

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

 
Postado : 10/02/2013 5:39 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu não entendi uma parte de sua dúvida.

se não for preenchido o número de unidades adquiridas na coluna "unidades" da "compras", ele soma "0" na coluna de "unidades" do estoque para o correspondente item, porém caso eu coloque 3 unidades por exemplo, ele soma 3 unidades (preservando o valor anterior).

Sub Duplidelete()
    With Sheets("compras")
        .Range(.Range("C2"), .Range("C65536").End(xlUp)).Copy
    End With
    Sheets("estoque").[A65536].End(xlUp)(2).PasteSpecial Paste:=xlValues
    ActiveSheet.Range("$A$1").End(xlUp).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

Sub ArrastAleVBA()
    Dim lr As Long
    Application.ScreenUpdating = False
    Const sFormula1 As String = "=MAX((compras!$C$2:$C$11=estoque!A2)*(compras!$D$2:$D$11))"
    Const sFormula2 As String = "Coloque seu calculoAqui" '<-- na sua explicação eu não entendi essa parte
     
    With Sheets("estoque")
        lr = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Range("B2").FormulaArray = sFormula1
        .Range("C2").FormulaArray = sFormula2
        .Range("B2:C2").AutoFill .Range("E2:D2").Resize(lr - 1)
        .Range("B2").Resize(lr, 2).Value = .Range("B2").Resize(lr, 2).Value
    End With
    Application.ScreenUpdating = True
End Sub

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

 
Postado : 10/02/2013 5:57 pm
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Olá, obrigado pelas respostas Patropi e Alexandre,

Patrobi, está funcionando quase 100%, o único erro é que ao invés de pegar o maior valor do item e copiar para a coluna de preço de venda da aba de estoque,
a função está somando todos os valores correspondentes a um item e adicionando como seu preço de venda na aba de estoque.

Quanto a coluna "E" da aba compras, não entendi porque algumas vezes aparecem novos número conforme escrevo uma nova linha e outras vezes não, como posso ocultá-la?

-----

Alexandre, o que eu tentei dizer foi que quando adicionamos um novo item na aba de compras, e não colocamos quantas unidades do item foram adquiridas, ele não soma nada
na linha referente a esse item na aba de produtos, porém, quando digitamos por exemplo "3 unidades" ele soma essa quantia à quantidade de itens já em estoque.

E uma dúvida que tenho Alexandre, estou com o office 2007 aqui, abrindo o VBA, criando um novo módulo e um novo procedimento, basta eu copiar os textos acima e gravar a macro? Creio que tem que ter no início do texto o Public Function criado pelo procedimento, correto? Devo criar 2 macros separadas ou apenas uma? Eu não consigui fazer aparecerem as macros para serem chamadas no excel dessa forma.

 
Postado : 10/02/2013 10:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Paiva

Só agora com o teu comentário que eu consegui entender o que vc deseja:

Baixe a planilha e veja se agora está como vc deseja:

Dê retorno.

Se a resposta foi útil, clique na mãozinha.

Um abraço.

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

 
Postado : 11/02/2013 10:42 am
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Perfeito Patropi, e agora que notei que a coluna E que você colocou na aba de compras pode ser extremamente útil. Muito obrigado!

 
Postado : 11/02/2013 11:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paiva

Conforme solicitado, segue a planilha em versão 2003:

http://www.sendspace.com/file/veunqr

Não se esqueça da mãozinha.

Um abraço.

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

 
Postado : 11/02/2013 3:53 pm