Extraer monto $ de una cadena de textos
Tengo una celda "C5" la cual posee dos modelos de textos, por ejemplo:
.- Ha enviado $4,776.50 a JHONATHAN
.- Enzo Morrone Garcia le envió $2,474.35
En ambos ejemplo debo solo extraer los montos a una celda "X", a celda "C7", para luego realizar un estado de cuenta. (Celdas solo ejemplo para luego adaptar al programa que estoy realizando)
Intente ubicando el caracter "$" y extrayendo N cantidad de caracteres siguientes, funciona perfecto para el 2do Ejemplo, pero para el primero no me funciona ya que al ser variables los montos y extraer N cantidad de caracteres, me traería parte del nombre, o como el 1er ejemplo " a JHO" si excede el numero de caracteres.
Pregunta concisa: ¿Cómo hacer para en cualquiera de los dos casos extraer solo el monto indiferentemente que sea monto variable?
- Pense en si se puede realizar un conteo de espacios en blancos donde copie desde el 2do hasta el 3ero (primer caso) o desde el 5to hasta el final (ESTOS DOS CASOS SON ESTANDARES, SIEMPRE ES EL MISMO FORMATO, solo cambiaría el nombre de la persona y el monto, pero en el segundo caso no funcionaria por variacion de nombres y apellidos cantidades)
- Ubicar el caracter "$" y que copie el largo de la "palabra", hasta el siguiente espacio en blanco
Realice un conteo de solo números en la celda y divido entre entero y decimal, perfecto, pero si el nombre posee algún numero me daría un falso monto ya que me traería ese numero ubicado en el nombre (ya lo probé y efectivamente es así)
Sub Botón1_Haga_clic_en()
Dim numeros As String
Dim coma As String
Dim entero As String
numeros = ""
cadena = Range("C5")
'Recorrer la cadena
For i = 1 To Len(cadena)
'Evaluar SI el carácter actual es un número
If IsNumeric(Mid(cadena, i, 1)) Then
'Concatenar valor numérico a la variable numeros
numeros = numeros & Mid(cadena, i, 1)
End If
Next
entero = Left(numeros, Len(numeros) - 2)
coma = Right(numeros, 2)
Range("C7").Value = entero & "." & coma
End Sub
Con este código extraigo los números y luego separo en enteros y decimales, pero como le comento si el nombre posee algún numero, también es mostrado y ya la operación no me es funcional.
Quedo a la espera de su ayuda y super agradecido de antemano.
Jose Perez