REPLACE VARIOS CRITERIOS

IRENKO 24/08/2007 08:44:22
#232488
Gostaria de saber ou como fazer um replace em um Textbox testando varios criterios:

Ex:

MM.MMM
MM:MMM
MM;MMM
MM/MMM

SUBSTITUIR QUALQUER UM DOS CARACTERES(. : ; /) POR (-) EM UM SO COMANDO.

USUARIO.EXCLUIDOS 24/08/2007 08:49:28
#232489


Putz...acho q isso n é possivel...n no replace normal (sem mágicas)

boa sorte
USUARIO.EXCLUIDOS 24/08/2007 09:05:10
#232491
MM.MMM
MM:MMM
MM;MMM
MM/MMM

s = text1.text
Replace(Replace(Replace(Replace(s, "/", "-"), ";", "-"), ":", "-"), ".", "-")

MM-MMM
MM-MMM
MM-MMM
MM-MMM
USUARIO.EXCLUIDOS 24/08/2007 09:07:15
#232492

Putz q show!!

E Funciona!!?
USUARIO.EXCLUIDOS 24/08/2007 09:29:33
#232494
Resposta escolhida
Funciona sim... Porém eu faria diferente... criaria uma função para isto.

De uma olhada no exemplo abaixo:


Private Sub Form_Load()
MsgBox ReplaceMultiplo("MM.MM;MM,MM/", ".|;|,|/", "|", "-")
End Sub



Public Function ReplaceMultiplo(Str As String, Procurar As String, Delimiter As String, Substituir As String) As String
Dim ArReplace As Variant

If InStr(1, Procurar, Delimiter) = 0 Then
Str = Replace(Str, Procurar, Substituir)
ReplaceMultiplo = Str
Exit Function
End If

ArReplace = Split(Procurar, Delimiter)

For i = 0 To UBound(ArReplace)
Str = Replace(Str, ArReplace(i), Substituir)
Next

ReplaceMultiplo = Str
End Function


IRENKO 24/08/2007 10:44:24
#232532
Marcelo, e formatando a entrada em um TextBox, como seria a chamada?
IRENKO 24/08/2007 10:55:42
#232538
O problema agora é que o usuário digita MM;.MMM, eu teria que retirar os dois caracteres errados e substituir por (-). Como ficaria a função?
USUARIO.EXCLUIDOS 24/08/2007 11:06:49
#232541
acho que e + facil vc fazer derrepente um controle do que o cara digita...... deixando somente digitar o caracter especial - que e o que vc quer .....
USUARIO.EXCLUIDOS 24/08/2007 11:34:13
#232558
Ficaria assim amigo:

Text1.Text = ReplaceMultiplo(Text1.Text,";|,|.|/|\|","|","-")

IRENKO 24/08/2007 13:32:24
#232575
Marcelo, legal sua função esta funcionado. Usei conforme abaixo:

TxtOF.text = ReplaceMultiplo(TxtOF.text, ".|;|,|/,|>,|+,|<,|*,|%,|\", "|", "-")

mas tem uma dúvida, se eu coloco mais um carater na sequencia a função não funciona. Existe limite de caracteres nesta sua função? No caso estou querendo acrecentar (#) e (%).
USUARIO.EXCLUIDOS 24/08/2007 14:00:53
#232580
cara... não tem limite.. desde que entre cada um dos caracteres vc coloque o Delimitador, pré-definido por vc tb.


Fiz o teste aqui e funcionou, da uma olhada:
TxtOF.text = ReplaceMultiplo(TxtOF.text, ".|;|,|/,|>,|+,|<,|*,|%,|\|#|%|", "|", "-")
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas