............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Macro para conteo de caracteres regresivamente

Ver el tema anterior Ver el tema siguiente Ir abajo

Macro para conteo de caracteres regresivamente

Mensaje por JoaoM el Vie Oct 05, 2012 8:03 pm

Quisiera una macro para que:

En un TextBox lo tengo para solo aceptar 40 caracteres (generales), escribo hasta que me mande un mensage que llegó a su MAX, hasta aqui lo tengo perfecto pero, en ves de tener lo anterior, quisiera cambiarlo a que en un label me fuera presentando un conteo regresivo de caracteres, desde 40 hasta 0 (cero) mientras se escribe y al legar a 1 me de mensage de MsgBox "MAX caracteres".

Gracias

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por Toldeman el Sáb Oct 06, 2012 8:08 am

Hola.

Prueba asi:

Código:
Private Sub TextBox1_Change()
Me.Label1 = 40 - VBA.Len(Me.TextBox1)
If Me.Label1 = 0 Then MsgBox "lo que quieras"
End Sub

Un saludo.

Toldeman
Moderador
Moderador

Masculino Cantidad de envíos : 60
Edad : 52
Ciudad - Pais : España
Version de Excel : 2007
Fecha de inscripción : 05/04/2009

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por JoaoM el Sáb Oct 06, 2012 4:55 pm

Gracias Toldeman, funciona desde 40 caracteres hasta cero, llegando a cero manda el mensage.

Tengo el TextBox propiedad MaxLength 40 por ese motivo no deja seguir escribiendo PERFECTO, nada me dice si insisto

Lo siguiente no hace parte de mi pregunta en el tema, por ello disculpame una cosilla mas, cosa que yo no previ:

Para agregar dentro de tu actual codigo;

Sopone la propiedad MaxLength la tengo en cero ¿alguna forma que no deje seguir escribiendo en el TextBox mas de 40 caracteres? y que ¿cada ves que insista seguir escribiendo mande el mensaje y no lo permita? a menos que elimine algún o algunos caracteres

O al menos que tenga la propiedad MaxLength en 40 pero cada ves que insista me mande mensage, a menos que yo elimine algun o algunos caracteres

Gracias por tu ayuda

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por Toldeman el Dom Oct 07, 2012 4:07 am

Hola.

veamos asi:

Código:
Private Sub TextBox1_Change()
Me.TextBox1.MaxLength = 40
Me.Label1 = 40 - VBA.Len(Me.TextBox1)
If VBA.Len(Me.TextBox1) > 39 Then MsgBox "lo que quieras": Exit Sub
End Sub

Un saludo.

Toldeman
Moderador
Moderador

Masculino Cantidad de envíos : 60
Edad : 52
Ciudad - Pais : España
Version de Excel : 2007
Fecha de inscripción : 05/04/2009

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por JoaoM el Dom Oct 07, 2012 12:20 pm

OK amigo Toldman, se logro el mensage cada ves que pasa los 40 caracteres.

No me hice entender muy bien (parece)

Le desactive la linea de la propiedad
Código:
Private Sub TextBox1_Change()
''''''''''' Me.TextBox1.MaxLength = 40
Me.Label1 = 40 - VBA.Len(Me.TextBox1)
If VBA.Len(Me.TextBox1) > 39 Then MsgBox "lo que quieras": Exit Sub
End Sub
se puede dar la misma propiedad, en ves de acá, ser en la ventana Propiedades, así lo tenia anteriormente pero no quisiera tenerlo ni en la ventana ni en el codigo y;

Como yo te lo muestro acá, al insistir manda el mensage a cada insistencia 41, 42 ect pero los caracter van entra al TextBox una ves que la propiedad no esta definida ni en el codigo y tampoco en las propiedades y la idea es que al insistir el caracter 41, mande el mensage y que el caracter 41, no se quede, que el TextBox mantenga SOLAMENTE 40 CARACTERES. Podria ser una línea después del MsgBox que desaparezca del TextBox el carácter que se tenta introducir, después del 40 (de insistencia)

Si se puede bien, si no así tambien me sirve, solo una pregunta mas;
¿que es mas valido, correcto, estetico y menos pesado o pratico para el libro?

Propiedades en la ventana? o ¿en la ventana de codigo?

Gracias por tu paciencia

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por Toldeman el Lun Oct 08, 2012 9:26 am

Hola.

No te entiendo muy bien.

Puedes suprimir la primera linea del código y poner el máximo de caracteres en las propiedades del control para evitar introducir mas caracteres, sino el mensaje te saldrá pero no evitaras la entrada de mas letras o números.

En cuanto que es mas rápido no podría decírtelo con seguridad, pero creo que la diferencia en procesamiento seria insignificante si esta existiese.

Un saludo.

Toldeman
Moderador
Moderador

Masculino Cantidad de envíos : 60
Edad : 52
Ciudad - Pais : España
Version de Excel : 2007
Fecha de inscripción : 05/04/2009

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por JoaoM el Lun Oct 08, 2012 7:42 pm

Ok Toldeman, muy bien. Te agradezco imenso tu tiempo y la ayuda prestada. Sinceramente Gracias. Lo voy a usar así con el max de carcters en las propiedades:
Código:
Private Sub TextBox1_Change()
''''''''''' Me.TextBox1.MaxLength = 40
Me.Label1 = 40 - VBA.Len(Me.TextBox1)
If VBA.Len(Me.TextBox1) > 39 Then MsgBox "lo que quieras": Exit Sub
End Sub
Lo importanetque queria encontrar era que al pisar cuando los 40, me mandara un mensage y no seguiera insertando, está muy bien así
Efectivamente Gracias. Muy agradecido por tu tiempo

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Macro para conteo de caracteres regresivamente

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.