Notifications
Clear all

VBA - AUTOMATIZANDO PLANILHA

9 Posts
2 Usuários
0 Reactions
1,621 Visualizações
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

BOM DIA.

Alguém pode me ajudar a criar no VBA, comando que calcule o resultado da recontagem, em uma planilha de inventário.

ESTRUTURA:
A = SETOR
B = RMS
C = EAN
D = DESCRIÇÃO
E CUSTO
F = SISTEMA
G = CONTADO
H = QTDE DIVERGENTE
I = VALOR DIVERGENTE
J = RECONTAGEM
K = QTDE DIVERGENTE DA RECONTAGEM
K = VALOR DIVERGENTE DA RECONTAGEM

Detalhe é que cada planilha, tem um número diferente de linhas.

Caso não haja valores digitados na coluna J (Recontagem), a coluna K terá o valor: (=SE(J3="";H3;J3-F3)) e a coluna L (=SE(J3="";I3;K3*E3)). O comando no VBA, editaria essa fórmula em todas as linhas que contenham itens, assim calculando o resultado final de cada item.

Detalhe é que cada planilha, tem um número diferente de linhas.

 
Postado : 12/04/2014 8:28 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boma tarde!!

Poste seu arquivo modelo compactado!!!

Att

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

 
Postado : 12/04/2014 9:11 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Nipeoli, o ideal é fazer o que o Alexandre disse, anexar um modelo, para analisar melhor.

Mas por outro lado, se sua planilha funciona perfeitamente somente com as formulas, a não ser que realmente queira utilizar VBA, acredito que seria o caso somente de recriar suas formulas criando Ranges Dinamicos, assim não precisaria de VBA.
De uma olhada em como faze-lo :
Intervalo Dinâmico usando DESLOC() [Resolvido]
viewtopic.php?f=20&t=98

Qualquer duvida retorne.

[]s

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

 
Postado : 12/04/2014 9:31 am
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

Bom dia.

Arquivo Modelo anexado.

Criei um módulo que cola as informações (Colunas de A a I), de outra planilha. Inserindo depois a coluna: J (Recontagem) e K e L (QTDE DIV VALOR DIV), e editando fórmulas nelas na linha 3.
Preciso que as fórmulas das células (K3:L3), seja coladas nas demais linhas, (até a ultima linha que contem informações. (No caso a linha 17).

Cada vez que utilizar esta planilha (A cada novo inventário), é uma quantidade diferente de linhas, por isso acho que deve ser usado VBA.

OBS.: Preciso que seja na versão Excel 2003/2007

Desde já, agradeço pela ajuda de todos.

 
Postado : 13/04/2014 6:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Onde está o Modulo e as rotinas que está utilizando ? Se está copiando e colando de outra planilha, onde está esta outra planilha ? Como saber os endereços a serem copiados e colados ? Qual criterio é utilizado para copiar ?

[]s

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

 
Postado : 13/04/2014 11:56 am
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

MAURO, BOA NOITE.

Não estão comigo agora, mas o módulo que eu criei, faz com que a planilha fica do jeito que está em anexo.
Eu gero um arquivo em XLS. depois abro a Planilha de inventário, (onde tem as guias: Detalhado e DIV); Faço uma cópia do arquivo xls que gerei e colo na guia DIV.
Depois colo na guia Detalhado e oculto algumas colunas, deixando igual as que estão no arquivo anexado para análise.

Depois disso, preciso trabalhar apenas com as colunas: J (Recontagem), K e L (QTDE DIV e VALOR DIV). Quando inserindo quantidade na Recontagem, altere as colunas: K e L (QTDE DIV e VALOR DIV). Isso em todas as linha que contem item. É o que chamo de Segunda Divergência ou Divergência Final, e que não sei como deixar a formula nas colunas K e L em todos os itens (linhas preenchidas).

Cada vez que gerar um novo arquivo xls, (inventário), a quantidade de linhas é diferente.

Se achar melhor, posso postar amanhã, no início da noite, o arquivo original com os módulos que estou criando.

Mais uma vez, muito obrigado.
__________

Onde está o Modulo e as rotinas que está utilizando ? Se está copiando e colando de outra planilha, onde está esta outra planilha ? Como saber os endereços a serem copiados e colados ? Qual criterio é utilizado para copiar ?

[]s

 
Postado : 13/04/2014 4:58 pm
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

ALEXANDRE / MAURO, BOA NOITE.

O arquivo mesmo compactado, excede o limite para anexar.
Posso enviar para algum e-mail?

No aguardo...

Logo abaixo está o módulo (Macro), que eu criei:

Sub Macro0()
'
' Macro0 Macro
' Macro gravada em 17/09/2012 por broni003
'

'Copiando do arquivo Divergencia XLS para a planilha TESTE na guia DIV.
'Preciso desta guia DIV na íntegra, porque tenho um segundo projeto para desenvolver depois, na continuação do processo.

ChDir "C:UsersNILTONDesktop"
Workbooks.Open Filename:="C:UsersNILTONDesktopDivergencia.xlsx"
Cells.Select
Selection.Copy
Windows("Teste.xls").Activate
Sheets("DIV").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Windows("divergencia.xlsx").Activate
ActiveWindow.Close

'Copiando todos os itens da planilha DIV, para a guia DETALHADO.

Application.ScreenUpdating = True

Sheets("DIV").Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("DETALHADO").Select
Rows("11:11").Select
ActiveSheet.Paste

'Inserindo Nome, Data de abertura do Inventário e o Subtotal da 1ª Divergência e 2ª Divergência

Sheets("DETALHADO").Select
Range("L5:O5").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(R[6]C[-10],"" - "",R[6]C[-8])"
Range("O7").Select
ActiveCell.FormulaR1C1 = "=R[4]C[-12]"
Range("T6").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[5]C:R[65530]C)"
Range("AC6").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[5]C:R[65530]C)"
Range("AC7").Select

'Inserindo fórmula na Qtde. de Valor da Divergência da Recontagem (AD:AE11)

Sheets("DETALHADO").Select
Range("AB11").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""",RC[-10],RC[-1]-RC[-11])"
Range("AC11").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""",RC[-9],RC[-1]*RC[-14])"
Range("AC12").Select

'Preciso colocar esta fórmula acima (nas colunas: AB:AC), em todas as linhas que contenham itens no inventário. lembrando que a cada inventário, a quantidade de linhas é diferente.
' É o que não estou conseguindo fazer.

'Inserindo colunas (vazias) entre: 1ª Divergência (entre a coluna Q e R) e a 2ª Divergência (entre a coluna Z e AA)
'Ocultando algumas colunas: A:F;H:K;P;U:Z(onde as linhas 9 e 10 estão em amarelo). Isso antes de inserir 2 colunas, citadas acima.
' Código excluído. Não consegui, dá erros (oculta e exibe colunas incorretas a cada vez que rodo a macro.

' A guia RESUMO é um outro projeto. Está com alguns erros. Se não tem o Setor, ele encontra valores sem sentido (=somase errado).

End Sub

 
Postado : 14/04/2014 6:37 pm
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

MAURO / ALEXANDRE, BOA TARDE.

Enviei a planilha por email, e algumas dúvidas deixei no módulo 1 no arquivo TESTE.xls.

Me ajudem, por favor.

Muito obrigado.

 
Postado : 17/04/2014 10:32 am
(@nilpeoli)
Posts: 16
Active Member
Topic starter
 

ALEXANDRE / MAURO, BOA NOITE.

Problema resolvido. Muito obrigado.

 
Postado : 28/04/2014 4:15 pm