Notifications
Clear all

Preencher célula vazia por criterio

12 Posts
3 Usuários
0 Reactions
1,990 Visualizações
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

Pessoal, bom dia!

Andei pesquisando aqui no fórum e não achei um tópico sobre isso, estou quebrando a cabeça e não consigo resolver esse problema, vocês conseguem me ajudar? Vamos lá:

Faço um tratamento para extrair informações de um determinado arquivo, e após esse tratamento, eu rodo uma macro que:

COPIA AS COLUNAS COM A INFORMAÇÕES EXTRAÍDAS
COLA COMO VALOR EM OUTRA PLAN
EXCLUI AS LINHAS VAZIAS

Até ai ok, o meu problema é: o arquivo que extraio as informações estão assim:

Nome do Cliente
nome da ação e quantidade
nome da ação e quantidade
Nome do Cliente
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
Nome do Cliente
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade
nome da ação e quantidade

Logo, quando coloco no Excel, ele fica assim:

COLUNA A________________COLUNA B
Nome do Cliente________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade
______________________Ação e Quantidade

O que eu preciso???? Preciso de um código que começa na linha 1 da coluna A e veja se ela está preenchida, se ela estiver preenchida, pula uma linha e verifica se está vazia, se estiver vazia ele preenche com o valor da célula de cima. Ficaria assim:

Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente ________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade
Nome do Cliente________Ação e Quantidade

As informações do arquivo podem varias, quantidade de clientes, quantidade de ações, então não consigo fazer isso manualmente...

Desculpem o tópico muito longo, mas pelo menos está bem explicado... rs

Podem me ajudar, por favor??? Muito Obrigado!

 
Postado : 20/04/2016 8:59 am
(@mprudencio)
Posts: 2749
Famed Member
 

Como vc nao disponibilizou seu arquivo nem seu codigo, seria o ideal ter feito os dois

Coloque dentro do loop a linha de intrução que copia o nome

Se nao conseguir resolver disponibilize seu arquivo.

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 : 20/04/2016 9:49 am
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

Boa tarde!

Não posso compartilhar a planilha porque ela tem dados confidenciais... E não tenho nenhum código pra isso ainda, todos que tentei deram errado.. rs

 
Postado : 20/04/2016 1:54 pm
(@edcronos2)
Posts: 346
Reputable Member
 

arthurbrs
vai ser difícil hem rapaz
como envolve documentos importantes e sigilosos o certo seria contratar alguém de confiança e capacitado para isso

lembrando que aqui é um forum com profissionais ou apenas iniciantes que disponibilizam seu tempo vago para ajudar a outros não sendo esse um trabalho remunerado, portanto sem garantia de respostas e se tiver não vai ser garantida a performance ou de ser a prova de falhas

vc pode cria um exemplo para postar respeitando posição e tipo de dados e arquivo com um exemplo manual de como quer
pode tbm pegar sua planilha e trocar os nomes e dados por outros

 
Postado : 20/04/2016 3:09 pm
(@edcronos2)
Posts: 346
Reputable Member
 

bah
mas como é simples vou dar uma ajuda

sub completa()
li=1
for l=li to cells(rows.count, "a").end(xlup).row
if cells(l,1).value<>"" then
v= cells(l,1).value
else
cells(l,1).value=v
end if
next
end sub

é mais ou menos isso para preencher com os nomes as linhas vazias

 
Postado : 20/04/2016 3:20 pm
(@edcronos2)
Posts: 346
Reputable Member
 

e eu reclamando que o pessoal gosta de complicar

sub completa()
li=2
    for l=li to cells(rows.count, "b").end(xlup).row
       if cells(l,1).value<>"" then
            cells(l,1).value= cells(l-1,1).value
       end if
   next
end sub
 
Postado : 20/04/2016 3:26 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Amigo Monte um exemplo EXATAMENTE IGUAL A sua planilha.

O que vc vai escrever tanto faz

O que interessa é o formato da planilha que vc tem.

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 : 20/04/2016 3:52 pm
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

Fala pessoal, boa noite!

Coloquei uma planilha como exemplo..

edcronos2, obrigado, porem esse código eu já tentei, o problema dele é que ele copia a primeira linha em todas as outras. Preciso que quando ele passe por uma célula preenchida, ele pule a linha, e copie o valor de cima...

sub completa()
li=1
for l=li to cells(rows.count, "a").end(xlup).row
if cells(l,1).value<>"" then
v= cells(l,1).value
else
cells(l,1).value=v
end if
next
end sub

 
Postado : 21/04/2016 5:12 pm
(@edcronos2)
Posts: 346
Reputable Member
 

descupa, mas vc testou não

    Arthur
    Arthur
    Arthur
    Arthur
    Arthur
    pedro
    pedro
    pedro
    carla
    carla
    carla
    carla
    carla
    carla
    carla
    carla
    carla

    [/list:u:1s7q476u]

    o segundo que postei realmente tem erro

     
Postado : 21/04/2016 5:21 pm
(@edcronos2)
Posts: 346
Reputable Member
 

o segundo tinha erro pq escrevi os 2 aqui mesmo no forum apenas seguindo sua explicação

no segundo eu tinha esquecido de mudar o sinal já que a ação era oposta

    Sub completa2()

        For l = 1 To Cells(Rows.Count, "b").End(xlUp).Row
           If Cells(l, 1).Value = "" Then
                Cells(l, 1).Value = Cells(l - 1, 1).Value
           End If
       Next
    End Sub

 
Postado : 21/04/2016 5:27 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Sua planilha nao tem titulos ???

So tem essas colunas???

Ou seja é assim mesmo???

Os dados a serem tratados começam mesmo na linha 1??

Existem essas linhas vazias entre os nomes??

Como eu disse os dados nao precisam ser reais mas o formato sim

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 : 21/04/2016 5:33 pm
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

edcronos2, muito obrigado cara! Me salvou!!!

Valew!

 
Postado : 21/04/2016 9:12 pm