REPLACE VARIOS CRITERIOS
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.
Ex:
MM.MMM
MM:MMM
MM;MMM
MM/MMM
SUBSTITUIR QUALQUER UM DOS CARACTERES(. : ; /) POR (-) EM UM SO COMANDO.
Putz...acho q isso n é possivel...n no replace normal (sem mágicas)
boa sorte
MM.MMM
MM:MMM
MM;MMM
MM/MMM
s = text1.text
Replace(Replace(Replace(Replace(s, "/", "-"), ";", "-"), ":", "-"), ".", "-")
MM-MMM
MM-MMM
MM-MMM
MM-MMM
MM:MMM
MM;MMM
MM/MMM
s = text1.text
Replace(Replace(Replace(Replace(s, "/", "-"), ";", "-"), ":", "-"), ".", "-")
MM-MMM
MM-MMM
MM-MMM
MM-MMM
Putz q show!!
E Funciona!!?
Funciona sim... Porém eu faria diferente... criaria uma função para isto.
De uma olhada no exemplo abaixo:
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
Marcelo, e formatando a entrada em um TextBox, como seria a chamada?
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?
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 .....
Ficaria assim amigo:
Text1.Text = ReplaceMultiplo(Text1.Text,";|,|.|/|\|","|","-")
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 (%).
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 (%).
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, ".|;|,|/,|>,|+,|<,|*,|%,|\|#|%|", "|", "-")
Fiz o teste aqui e funcionou, da uma olhada:
TxtOF.text = ReplaceMultiplo(TxtOF.text, ".|;|,|/,|>,|+,|<,|*,|%,|\|#|%|", "|", "-")
Tópico encerrado , respostas não são mais permitidas