Notifications
Clear all

Macro substituir texto

6 Posts
2 Usuários
0 Reactions
4,534 Visualizações
(@celsoyano)
Posts: 75
Trusted Member
Topic starter
 

Boa noite,
Gostaria de saber é possível que eu substitua tudo que tiver depois de um determinado texto por um texto que eu quiser.
Por exemplo:

__________A1_________/_______B2________
___RECEITA - 01_______/_____RECEITA_____
___DESP. - RPG LTDA___/______DESP.______
___COMPRAS - ONTEM__/_____COMPRAS_____

No exemplo acima, eu substitui tudo que tinha depois de " - " por nada. é possivel uma macro assim????

Obrigado a todos que puderem me ajudar

 
Postado : 18/02/2012 8:45 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Só precisa disso por meio de VBA?

caso contrário...=SUBSTITUIR(A3;EXT.TEXTO(A3;LOCALIZAR("-";A3);100);"")

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/02/2012 8:51 pm
(@celsoyano)
Posts: 75
Trusted Member
Topic starter
 

alexandrevba,
na verdade gostaria que fosse em codigo vba msm, pois estou montando um código com outros comandos também.
O que eu queria msm q ele fizessem é que ele pegasse o texto original em A1 extraisse o texto que eu gostaria, e substiuisse a propria celula A1.
Meu conhecimento em vba é minimoooo, copiar, colar, selecionar, eu consigo montar. Por isso só pedi parte do código. Mas o q eu gostaria que ele fizesse msm é o que descrevi acima. Mas obrigado pela dica

 
Postado : 19/02/2012 8:56 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Celso,

há inúmeras maneiras de fazer isso através de VBA...
... precisa detalhar um pouco mais sobre algumas condições...

Um exemplo simples (apenas para a célula A1):

Sub HIFEN()

t = Range("A1").Value
f = Application.WorksheetFunction.Search("-", t)
nt = Mid(t, 1, f - 1)
Range("A1") = nt

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/02/2012 9:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como o edson citou, existem várias formas de se fazer o que pretende, e alem da citada pelo mesmo, podemos utilizar a função Split, ficando assim :

Sub Substitui_TextoOriginal()
    Dim TextoOriginal
    
    For i = 1 To 10 'de A1 até A10
        TextoOriginal = Cells(i, 1).Value
        Cells(i, 1).Value = Split(TextoOriginal, " - ")
    Next
    
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/02/2012 9:37 pm
(@celsoyano)
Posts: 75
Trusted Member
Topic starter
 

Obrigado a todos que me ajudaram.
uma outra pessoa tambem me ajudou conforme a planilha abaixo
ajustei o codigo para que ela substitua a propria coluna A

Sub Replacement()
'
'
Dim Source1 As Worksheet
Dim Cell As Range
Set Source1 = Sheets("Plan1")
For Each Cell In Source1.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
    Cell.Offset(0, 1).Select
    ActiveCell.Value = "=SEARCH("" "",RC[-1],1)"
    Cell.Offset(0, 2).Select
    ActiveCell.Value = "=LEFT(RC[-2],RC[-1]-1)"
Next Cell
Range("C1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("C:C").Select
Selection.Delete
Range("A1").Select
X = Worksheets("Plan1").Range("B:B").Cells.SpecialCells(xlCellTypeConstants).Count
MsgBox "Foram substituídas " & X & " células.", vbInformation, "Resultados"
End Sub

http://www.4shared.com/file/X_ZbvUBu/Su ... ement.html
Créditos: Douglas Marcel

 
Postado : 20/02/2012 6:01 am