Página 1 de 1

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 00:15
por diegomatoseng
Amigos,

Preciso de uma ajuda na planilha em anexo:

Preciso que na coluna F e I , ele encontre o valor preenchido e preencha as células vazias acima desse valor.

abraço,

Diego

Re: Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 10:37
por osvaldomp
diegomatoseng escreveu: Preciso que na coluna F e I , ele encontre o valor preenchido e preencha as células vazias acima desse valor.
Quem seria "ele" ?

Experimente:
Código: Selecionar todos
Sub PreencheVazias()
 Dim k As Long, v As Long
  Columns(6).TextToColumns
  Do Until v >= Cells(Rows.Count, 6).End(3).Row
   v = Cells(k + 1, 6).End(4).Row
   Cells(k + 1 - (k = 0), 6).Resize(v - k - 1 + (k = 0)) = Cells(v, 6)
   Cells(k + 1 - (k = 0), 9).Resize(v - k - 1 + (k = 0)) = Cells(v, 9): k = v
  Loop
End Sub

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 10:42
por diegomatoseng
"Ele" = rotina VBA... :D

Deu boa Osvaldo! Mais uma vez obrigado.

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 11:00
por diegomatoseng
Osvaldo,

Pra eu usar numa planilha com outras abas como eu faço?

Abs,

Diego

Re: Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 11:14
por osvaldomp
Olá, Diego.

Você quer aplicar o código em várias planilhas do mesmo arquivo, é isso?

Se sim, seria aplicar em todas as planilhas do arquivo ou alguma(s) ficaria(m) de fora ? Neste segundo caso você precisa informar os nomes das planilhas.

A estrutura das demais planilhas é exatamente igual à planilha que você disponibilizou antes ?

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 11:22
por diegomatoseng
Osvaldo,

Na verdade eu tenho várias abas, mas quero que funcione somente na aba denominada XLB_UPLOAD. E essa parte que eu não to conseguindo inserir no código.

Abs

Diego

Re: Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 12:47
por osvaldomp
Para aplicar o código na planilha XLB_UPLOAD basta deixá-la como a planilha ativa ao rodar o código que passei antes. Se isso não for viável, então utilize o código abaixo.
Código: Selecionar todos
Sub PreencheVazias()
 Dim k As Long, v As Long
  With Sheets("XLB_UPLOAD")
   .Columns(6).TextToColumns
   Do Until v >= .Cells(Rows.Count, 6).End(3).Row
    v = .Cells(k + 1, 6).End(4).Row
    .Cells(k + 1 - (k = 0), 6).Resize(v - k - 1 + (k = 0)) = .Cells(v, 6)
    .Cells(k + 1 - (k = 0), 9).Resize(v - k - 1 + (k = 0)) = .Cells(v, 9): k = v
   Loop
  End With
End Sub

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 12:59
por diegomatoseng
Osvaldo,

Está dando erro de definição de aplicativo ou de objeto nas linhas:

.Cells(k + 1 - (k = 0), 6).Resize(v - k - 1 + (k = 0)) = .Cells(v, 6)
.Cells(k + 1 - (k = 0), 9).Resize(v - k - 1 + (k = 0)) = .Cells(v, 9): k = v

Re: Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 13:08
por osvaldomp
Disponibilize o arquivo com o código instalado.

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 13:47
por diegomatoseng
Segue!

O código está no Módulo2, abaixo do comentário:

'Preencher automaticamente Talhão HT / Quantidade de Árvores

Abs,

Diego

Re: Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 14:38
por osvaldomp
O problema ocorre porque no primeiro arquivo o cabeçalho ocupa somente a linha 1 e agora você quer rodar o código em planilha cujo cabeçalho ocupa as linhas 1 e 2 :? :?:

Substitua as 3 linhas conforme abaixo.
Código: Selecionar todos
   v = .Cells(k + 1 - (k = 0), 6).End(4).Row
    .Cells(k + 1 - 2 * (k = 0), 6).Resize(v - k - 1 + 2 * (k = 0)) = .Cells(v, 6)
    .Cells(k + 1 - 2 * (k = 0), 9).Resize(v - k - 1 + 2 * (k = 0)) = .Cells(v, 9): k = v

Encontrar valor na célula e preenche acima

Enviado: 07 Out 2019 às 14:46
por diegomatoseng
:mrgreen:

Valeu Osvaldo! 100%