Ayuda con Macro

24/01/2007 - 09:35 por Jon | Informe spam
Hola a todos,
Aquí sigo yo con mis macros que no consigo que funcione… y después de mucho
probar me he decido consultarlo aquí. Se que antes lo he conseguido hacer,
pero esta vez no me sale y no encuentro aquel código anterior.
De un código introducido por el usuario, me tengo que quedar con los últimos
números que ha escrito, lo malo es que el código puede tener letras (o no) al
final. Ejemplos de estos códigos del usuario pueden ser:
XXX-1902-A/20-R y tengo que obtener el 20
XXX-1902-A6 y tengo que obtener el 6
Lo que quiero hacer es una macro para que comenzando por el final de la
cadena de texto, comience viendo si es una letra o numero, y cuando haya
cogido los últimos números, lo almacene en una variable nueva.
El siguiente paso es hacer que ese numero que me ha almacenado (entre 1 y
100), lo convierta a un código de 3 cifras: 006, 015, 099 o lo que le
corresponda, es decir que por delante se le rellene con ceros hasta que tenga
3 cifras.
No se si me he explicado correctamente o no, así que si hay cualquier duda,
me comentáis lo que no entendáis sin problemas.
 

Leer las respuestas

#1 Peluchon
24/01/2007 - 12:05 | Informe spam
copia esta función en un módulo y la pruebas

Public Function sacanum(texto As String) As String
Dim logtexto As Integer
Dim x As Integer
Dim caracter As String
Dim cadinter As String
Dim valor As Double

logtexto = Len(texto)
For x = logtexto To 1 Step -1
caracter = Mid(texto, x, 1)
valor = Val(caracter)
If valor <> 0 Or caracter = "0" Then
cadinter = caracter & cadinter
End If
If Len(cadinter) <> 0 And valor = 0 And caracter <> "0" Then
cadinter = Format(cadinter, "000")
sacanum = cadinter
Exit Function
End If
Next x
cadinter = Format(cadinter, "000")
sacanum = cadinter
End Function

On 24 ene, 09:35, Jon wrote:
Hola a todos,
Aquí sigo yo con mis macros que no consigo que funcione... y después de mucho
probar me he decido consultarlo aquí. Se que antes lo he conseguido hacer,
pero esta vez no me sale y no encuentro aquel código anterior.
De un código introducido por el usuario, me tengo que quedar con los últimos
números que ha escrito, lo malo es que el código puede tener letras (o no) al
final. Ejemplos de estos códigos del usuario pueden ser:
XXX-1902-A/20-R y tengo que obtener el 20
XXX-1902-A6 y tengo que obtener el 6
Lo que quiero hacer es una macro para que comenzando por el final de la
cadena de texto, comience viendo si es una letra o numero, y cuando haya
cogido los últimos números, lo almacene en una variable nueva.
El siguiente paso es hacer que ese numero que me ha almacenado (entre 1 y
100), lo convierta a un código de 3 cifras: 006, 015, 099 o lo que le
corresponda, es decir que por delante se le rellene con ceros hasta que tenga
3 cifras.
No se si me he explicado correctamente o no, así que si hay cualquier duda,
me comentáis lo que no entendáis sin problemas.

Preguntas similares