Página 1 de 1

pesquisar,copiar e colar partes de texto com vba

Enviado: Seg Mar 02, 2020 8:50 pm
por zen
Pessoal, preciso localizar uma sequência de números dentro de uma frase e copiar. Ex: "cod pedido tms 4502382223 ref ao chamado sl00231244 "preciso copiar e colar somente o "4502382223", o problema e que o restante do texto que vem antes e depois variam tipo, as vezes vem como cod,codigo,ped etc. Alguém pode me ajudar como fazer isso em vba?

Re: pesquisar,copiar e colar partes de texto com vba

Enviado: Dom Mar 08, 2020 6:15 am
por Alyson
Bom dia. Poderia dar exemplos dessas variações?

Re: pesquisar,copiar e colar partes de texto com vba

Enviado: Dom Mar 08, 2020 6:06 pm
por zen
ola Alyson, as variações são algo como "codigo pedido tms 4502382223 referente ao chamado sl00231244 "
as vezes :pedido tms 4502382223 ref ao chamado sl00231244 " ou as vezes,"cod pedido tms 4502382223 ref ao chamado sl00231244 le:000000pbr17 lr:00000300456 " a formula em excel: =EXT.TEXTO(A1;PROCURAR("450";A1);10) da certo a extração somente do numero começado com 450, mas não consegui passar para vba de modo eficaz. consegui com o codigo:

Dim Z As Integer
Dim myRange As Range
Set myRange = Plan1.Range("A1") 'texto esta aqui
Dim myRange2 As Range
Set myRange2 = Plan1.Range("A2")
Z = 1
Do While Z <> Len(myRange)
If IsNumeric(Mid(myRange, Z, 1)) Then
myRange2 = myRange2 & Mid(myRange, Z, 1)
End If
Z = Z + 1
Loop

mas se tiver outros valores numericos na frase ele falha em seu proposito.

Re: pesquisar,copiar e colar partes de texto com vba

Enviado: Sáb Mar 14, 2020 3:00 am
por srobles
zen,

Experimentou usar a função Split?

Veja abaixo, se a rotina atende sua necessidade.

Código: Selecionar todos

Sub extrairPedido()
    Dim planDados As Worksheet
    Set planDados = ThisWorkbook.Sheets(1)
    
    Dim linhaAtual As Long, linhaFinal As Long
    With planDados
        linhaAtual = 1
        linhaFinal = .Cells(Rows.Count, 1).End(xlUp).Row
        
        While linhaAtual <= linhaFinal
            If Split(.Cells(linhaAtual, 1), " ")(1) = "tms" Then .Cells(linhaAtual, 2) = Split(.Cells(linhaAtual, 1), " ")(2)
            If Split(.Cells(linhaAtual, 1), " ")(1) = "pedido" Then .Cells(linhaAtual, 2) = Split(.Cells(linhaAtual, 1), " ")(3)
            linhaAtual = linhaAtual + 1
        Wend
    End With
End Sub

Re: pesquisar,copiar e colar partes de texto com vba

Enviado: Sex Mar 20, 2020 11:56 am
por zen
Obrigado saulo! mas consegui atraves deste codigo que independente do valor numerico que esteja na frase ele me devolve a sequencia dos 10 digitos que preciso começado com "450"

Sub testmid()
Plan1.Select

Dim rng As Range
Set rng = Plan1.Range("a1")
[b2] = Mid(rng, InStr(rng, "450") - 1, 11)



End Sub

Re: pesquisar,copiar e colar partes de texto com vba [RESOLVIDO]

Enviado: Sex Mar 20, 2020 12:01 pm
por zen
:!: