Notifications
Clear all

Preencher colunas com base em tabela de dados

9 Posts
2 Usuários
0 Reactions
1,517 Visualizações
(@mmessias)
Posts: 44
Eminent Member
Topic starter
 

Boa tarde!

Amigos,

Na planilha em anexo eu tenho uma tabela onde eu trago alguns ranges e ao lado o valor que deve conter nesse range.

A lógica que identifica o range eu já fiz por formula, agora só preciso de uma rotina (ou formulas) que preencham esses ranges com o valor informado.

por exemplo: na célula N4 eu tenho o range d6:d20, que precisa ser preenchido com o valor 2211, localizado na célula O4.

Já quebrei a cabeça, pesquisei e não consigo pensar em um jeito de fazer isso, alguém poderia me dar uma sugestão/solução?

Obrigada!

 
Postado : 30/11/2016 10:27 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde MMessias,

Não entendi bem o seu exemplo. Para o preenchimento da N4, pega-se o valor da coluna D que são iguais e coloco a região que se encontram (range("D6:D20")) e depois coloca esse valor na O4. A seguir e pego o próximo valor da lista e procuro a região que está igual (D21:D22) e coloco na coluna do lado, depois pego o próximo valor da coluna D (2184)...

É isso que você precisa?

att,

 
Postado : 30/11/2016 11:10 am
(@mmessias)
Posts: 44
Eminent Member
Topic starter
 

brunoxro,

Desculpe, acho que não soube me expressar...

Na célula N4, há um intervalo preenchido (d6:d20) que eu já identifiquei anteriormente via fórmula, e eu quero que este intervalo que encontrei seja preenchido com o valor presente na célula o4.

Ou seja quero que todas celulas do range em N4 (D6:D20), sejam preenchidos com o valor de O4 (2211), e que ele faça isso para as próximas células (N5,N6,N7....)

Eu comecei a fazer no vba de um jeito que funciona, mas não é ideal, pois do meu modo eu teria que definir variáveis para cada célula preenchida com intervalo, porque não sei usar loop :cry: (ainda)

por exemplo:


Sub teste()


Dim n4 As String
Dim n5 As String
Dim n6 As String
Dim n7 As String
Dim n8 As String
Dim n9 As String
Dim n10 As String
Dim n11 As String
Dim n12 As String
Dim n13 As String
Dim n14 As String

On Error Resume Next

n4 = Range("n4").Value
Range(n4).Formula = Range("o4").Value

n5 = Range("n5").Value
Range(n5).Formula = Range("o5").Value

n6 = Range("n6").Value
Range(n6).Formula = Range("o6").Value

n7 = Range("n7").Value
Range(n7).Formula = Range("o7").Value

n8 = Range("n8").Value
Range(n7).Formula = Range("o8").Value

n9 = Range("n9").Value
Range(n9).Formula = Range("o9").Value

n10 = Range("n10").Value
Range(n10).Formula = Range("o10").Value

n11 = Range("n11").Value
Range(n10).Formula = Range("o11").Value

n12 = Range("n12").Value
Range(n12).Formula = Range("o12").Value

n13 = Range("n13").Value
Range(n13).Formula = Range("o13").Value

n14 = Range("n14").Value
Range(n14).Formula = Range("o14").Value

End Sub

 
Postado : 30/11/2016 11:58 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde MMessias,

Veja o código que montei, está no Módulo 1. Coloquei alguns dados para testar e mudei o formato da sua tabela para facilitar a montagem.

Copie os seus dados originais para a planilha 'Exemplo' e veja se o resultado está correto, não fiz um 'polimento' do código por isso teste e de retorno.

Para colocar os resultados das colunas em linhas, basta transpor os dados (Copiar -> Colar Especial -> Transpor)

OBS: Como você não sabe as rotinas de repetição (Do while, For, For each) fica difícil para explicar o código, procure aulas no Youtube.

att,

 
Postado : 30/11/2016 1:03 pm
(@mmessias)
Posts: 44
Eminent Member
Topic starter
 

brunoxro,

Primeiramente, obrigada pelo retorno.

Testei aqui, mas não retornou no formato certo.

Aquela tabela que fiz é um espelho de uma em que o usuário entra os dias de produção, e seria preciso manter este mesmo layout pois é onde se ordena a produção.

Estou mandando um novo exemplo em anexo com explicações mais detalhadas e com um exemplo de como o preenchimento deveria ficar.

Mais uma vez obrigada!

 
Postado : 30/11/2016 1:41 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

MMessias,

Dei uma olhada na sua explicação e estou com algumas dúvidas.

Nessa nova tabela que você adicionou (jan/17), os dias são colocados pelo usuário? O tamanho o usuário também completa?

Será 12 tabelas relacionados aos meses( jan/17 ... Dez/17) ?

Esses zeros em vermelho (conversão de linha) já são padrão da sua base de dados original (colunas B:I) ?

Os espaços em branco é natural da sua base de dados?

Para melhor entendimento vou precisar de um exemplo completo, porque no caso sua tabela de exemplo vai até a linha 36 mas na célula N28 está preenchido com "I6:I128".

att,

 
Postado : 30/11/2016 2:13 pm
(@mmessias)
Posts: 44
Eminent Member
Topic starter
 

Bom dia, brunoxro!

- Os dias são fixos, será sem o primeiro dia de cada mês em formato mmm/aa.
- O tamanho é o usuário quem fornece, para saber qual tamanho foi produzido primeiro.
- Sim, serão sempre 12 tabelas, de janeiro à dezembro, variando apenas o ano.
- Os zeros serão preenchidos quando o usuário, ao invés do tamanho, informar "C"
- Quanto aos espaços na tabela - A L1 produz 3 tamanhos, a L2 2 tamanhos e a L3 apenas 1. A L1 e L2 podem realizar no máximo duas conversões no mês, mas pode ser que não realizem nenhuma e produzam o mesmo tamanho o mês inteiro, neste caso existiriam espaços em branco, pois o usuário não precisaria preencher entrada de outros tamanhos na mesma linha naquele mês.

Quanto ao exemplo enviado, foi falha minha. Quando inseri o novo quadro eu sobrepus as informações corretas. Desculpe.
Estou lhe encaminhando o mesmo exemplo retificado.

 
Postado : 01/12/2016 6:19 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde MMessias,

Acho que entendi, você tem três tabelas: Tabela 1=N3:O15, Tabela 2=B:I, Tabela 3 = N17:O28
É preenchido os dados na Tabela 1 e com isso as tabelas 2 e 3 são completadas.

Olhe o arquivo em anexo, eu fiz alterações na sua Tabela 1 acrescentando a coluna Valor porque faz mais sentido para mim estar na lista dos preenchidos.
Tive que alterar também o Layout das tabelas para facilitar o código.

Para o seu caso real de um ano inteiro eu alteraria completamente o Layout da Tabela 1. Talvez dividindo cada Linha de produção em uma planilha e depois unificando em uma tabela única.

Teste e de retorno.

att,

 
Postado : 01/12/2016 1:39 pm
(@mmessias)
Posts: 44
Eminent Member
Topic starter
 

Bom dia brunoxro!

Testei aqui e é isso mesmo! Perfeito!

Não tem problema alterar o formato da tabela não, muito obrigada!

Vou usar o seu código para estudar, rs

 
Postado : 02/12/2016 6:43 am