Página 1 de 1

[RESOLVIDO] Correção de Macro Extrair Parte do Texto

Enviado: 16 Nov 2022 às 16:08
por SandroLima
Boa tarde, pessoal.

Estou precisando de ajuda para corrigir o erro da macro da planilha anexa que serve para extrair partes do texto das células de uma coluna e inserir na Tabela "TB_Banco_de_Dados" (TABELA AZUL).

Em algumas linhas ela apresenta o resultado desejado e em outras não.

Poderiam me ajudar a verificar / corrigir o erro?

Na TABELA VERDE inseri manualmente o resultado esperado para a extração de dados para a TABELA AZUL.

Segue planilha anexa.

Re: Correção de Macro Extrair Parte do Texto

Enviado: 17 Nov 2022 às 12:41
por Foxtri
Boa tarde.
Segue uma Opção
Até
Foxtri

Re: Correção de Macro Extrair Parte do Texto

Enviado: 20 Nov 2022 às 23:33
por SandroLima
Boa noite, Foxtri.

Excelente alternativa.... muito obrigado.

Outra alternativa que testei e que está dando certo e caso possa interessar a alguém:

Inseri um bloco:
Código: Selecionar todos
Do While...

Loop
e dentro dele pedi para calcular a posição dos espaços (" ") a cada mudança de linha.

Assim:
Código: Selecionar todos
Do While i <= Qtde_Oper
    
        With Plan_Origem
            Texto = Trim$(Cells(Lin, 2).Value)
            Pos_Espace1 = InStr(1, Texto, " ")
            Pos_Espace2 = InStr(Pos_Espace1 + 1, Texto, " ")
            Pos_Espace3 = InStr(Pos_Espace2 + 1, Texto, " ")
            Pos_Espace4 = InStr(Pos_Espace3 + 1, Texto, " ")
            Pos_Espace5 = InStr(Pos_Espace4 + 1, Texto, " ")
            Pos_Espace6 = InStr(Pos_Espace5 + 1, Texto, " ")
            Pos_Espace7 = InStr(Pos_Espace6 + 1, Texto, " ")
            Pos_Espace8 = InStr(Pos_Espace7 + 1, Texto, " ")
            Pos_Espace9 = InStr(Pos_Espace8 + 1, Texto, " ")
        End With
       
        With Tb_Destino
             str_Ativo = Mid$(Plan_Origem.Cells(Lin, 2).Value, Pos_Espace3, Pos_Espace6 - Pos_Espace3)
             .ListColumns("Ativo").DataBodyRange.Cells(1, 1).Value = str_Ativo
       End With
'Segue o restante da Macro
Muito obrigado novamente e tenha uma excelente semana!