Página 1 de 1

Macro para separar uma coluna com uma condição, mas quando encontra vazia ele pula pra proxima.

Enviado: 21 Mai 2021 às 19:33
por Rabatini
Olá pessoal Tudo bem?

Estou com um probleminha aqui.
Fiz um macro ele está funcionando da maneira correta, porém eu precisava adicionar uma condição.

Como funciona.
Na celula B1 tem um texto grande tipo assim VAMOS[END]EMBORA[END]DAQUI[END]
A macro ela da um split ficando assim

E5 = VAMOS[END]
E6 = EMBORA[END
E7 = DAQUI[END]
Até ai tudo bem.

Porém eu queria que ela desse o split somente nas que tiverem vazias, as que ela encontrar dados, ela pula pra proxima vazia, porém continuando da onde ela copiou.

Exemplo: B1=VAMOS[END]EMBORA[END]DAQUI[END]
"VAZIA"
OLÁ
"VAZIA"
LEGAL
"VAZIA"

RESULTADO FINAL
VAMOS
OLÁ
EMBORA
LEGAL
DAQUI

seria possível?

segue meu código abaixo.
Código: Selecionar todos
Sub main()

' Função para unir as linhas
' em só uma linha
Sheets("TEXTO").Select
Call unirLinhas(4, 4, 2, 2)

' Utilização da função Split
' separando todo o texto quando encontrado ">"
quebralinha = Split(Cells(1, 2), "[END]")



' Descarregamnto do vetor de palavras
' nas células abaixo dos dados de origem

For i = 0 To UBound(quebralinha)

    If Len(quebralinha(i)) > 1 Then
    Cells(i + 3, 4).Select
    Selection.NumberFormat = "@"
 
    Cells(i + 4, 5) = quebralinha(i) & "[END]"
    End If

Next i

End Sub
Obrigado pela atenção.

Re: Macro para separar uma coluna com uma condição, mas quando encontra vazia ele pula pra proxima.

Enviado: 21 Mai 2021 às 22:25
por osvaldomp
#
Veja se ajuda.
Código: Selecionar todos
Sub main()
 Dim a, i As Long, k As Long
 a = Split([B1], "[END]")
 For i = 0 To UBound(a) - 1
  Do
   If Cells(k + 5, 5) = "" Then Cells(k + 5, 5) = a(i): k = k + 1: Exit Do
    k = k + 1
  Loop
 Next i
End Sub

Re: Macro para separar uma coluna com uma condição, mas quando encontra vazia ele pula pra proxima.

Enviado: 21 Mai 2021 às 23:42
por Rabatini
Perfeito!
isso que eu queria!
Muito obrigado!