Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#48972
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
Você não está autorizado a ver ou baixar esse anexo.
#48979
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
#48984
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 ?
#48987
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
#48988
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
#48989
Disponibilize o arquivo com o código instalado.
#48991
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord