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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Carlos
25/01/2007 - 03:28 | Informe spam
buenas noches..

amigo.. disculpame.. pero me gustaria saber cómo hago trabajar esta esta
macro...

Es decir en la celda A1 esta el número XXX-1902-A/20-R.. qué escribo en la
celda A2 para que me dé lo buscado.

Saludos



"Peluchon" escribió en el mensaje
news:

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.
Respuesta Responder a este mensaje
#3 Peluchon
25/01/2007 - 08:49 | Informe spam
Primero la función deberias ponerla en un módulo.

en la celda A2 deberias poner =sacanum(a1) y te sacará el dato


On 25 ene, 03:28, "Carlos" wrote:
buenas noches..

amigo.. disculpame.. pero me gustaria saber cómo hago trabajar esta esta
macro...

Es decir en la celda A1 esta el número XXX-1902-A/20-R.. qué escribo en la
celda A2 para que me dé lo buscado.

Saludos

"Peluchon" escribió en el mensajenews:

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.
Respuesta Responder a este mensaje
#4 Jon
25/01/2007 - 08:53 | Informe spam
Hola Carlos,
lo que tienes que hacer es por medio de una macro llamar a la funcion y que
el resultado lo ponga en la celda A2:
Sheets("Hoja1").Range("A2").Value=sacanum(Sheets("Hoja1").Range("A1").Value))
Espero que te funcione con esto.

"Carlos" wrote:

buenas noches..

amigo.. disculpame.. pero me gustaria saber cómo hago trabajar esta esta
macro...

Es decir en la celda A1 esta el número XXX-1902-A/20-R.. qué escribo en la
celda A2 para que me dé lo buscado.

Saludos



"Peluchon" escribió en el mensaje
news:

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.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida