Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
pesquisar,copiar e colar partes de texto com vba
pesquisar,copiar e colar partes de texto com vba
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
Bom dia. Poderia dar exemplos dessas variações?
Re: pesquisar,copiar e colar partes de texto com vba
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.
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
zen,
Experimentou usar a função Split?
Veja abaixo, se a rotina atende sua necessidade.
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
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
Sub testmid()
Plan1.Select
Dim rng As Range
Set rng = Plan1.Range("a1")
[b2] = Mid(rng, InStr(rng, "450") - 1, 11)
End Sub