Jump to content
aaquino

Validar códigos sin depender de una hoja

Recommended Posts

Buen día, tarde, noche compañeros

Quisiera molestarlos, si me pudieran ayudar con algo que no he podido resolver.

Estoy haciendo una validación de códigos, para lo cual actualmente estoy dependiendo de una hoja para validar. Lo que estoy validando en sí, es el primer dígito del código, y que si este primer dígito no se encuentra en una lista, definida en una hoja, entonces que lance un mensaje de advertencia y que no deje pasar a lo siguiente.

Sin embargo, lo que solicito es que esta lista, se encuentre dentro de una variable, del mismo código, para no depender de una hoja de excel. Estaba pensando en un Array, pero sin embargo no he podido realizar lo que necesito.

Cabe mencionar que no estoy solicitando explícitamente un array, sino que si tienen alguna sugerencia mejor, que me puedan ayudar.

Quedo atento a sus comentarios.

Muestra AE.xlsm

Share this post


Link to post
Share on other sites
Hace 49 minutos , aaquino dijo:

Estoy haciendo una validación de códigos, para lo cual actualmente estoy dependiendo de una hoja para validar. Lo que estoy validando en sí, es el primer dígito del código, y que si este primer dígito no se encuentra en una lista, definida en una hoja, entonces que lance un mensaje de advertencia y que no deje pasar a lo siguiente

Hola aaquino

Si se puede usar un array o una sola hoja, pero es relativo a lo que buscas

¿Que tipos de codigos son? ¿Numeros? ¿Numeros y letras?... te lo pregunto asi, porque el array se puede crear desde VBA

 

Hace 51 minutos , aaquino dijo:

Sin embargo, lo que solicito es que esta lista, se encuentre dentro de una variable, del mismo código, para no depender de una hoja de excel. Estaba pensando en un Array, pero sin embargo no he podido realizar lo que necesito.

Puedes dejar esa hoja con los codigos y ocultarla, en VBA la declaras como array y listo

 

Saludos 

Share this post


Link to post
Share on other sites

Hola @aaquino,

Te recomiendo que no revuelvas el código, el que es para formularios tratalo en el mismo Módulo del formulario. No en un módulo estandar.

Lo que para mi es más lógico es lo siguiente.

  1. El ARRAY lo hago publico primero con nombre aArray.
  2. Cargar el ARRAY cuando abres el formulario.
  3. Valido lo ingresado al ComboBox, aquí es mejor hacer una función que te valide si lo encontró o no, y que la función te regrese False o True.
  4. Y después sigues lo que quieras en el código del formulario.

Espero me haya dado a entender.

Saludos

P.D.: Espero que sea lo que necesitas,

cualquier duda al respecto... por aquí andamos.

 

Muestra AE.xlsm

Share this post


Link to post
Share on other sites
Hace 2 horas, Gerson Pineda dijo:

Hola aaquino

Si se puede usar un array o una sola hoja, pero es relativo a lo que buscas

¿Que tipos de codigos son? ¿Numeros? ¿Numeros y letras?... te lo pregunto asi, porque el array se puede crear desde VBA

 

Puedes dejar esa hoja con los codigos y ocultarla, en VBA la declaras como array y listo

 

Saludos 

Que tal mi estimado @Gerson Pineda , tiempo de no molestar, verdad?.... jajaja

Te comento, el código que se utilizaría sería "Numérico", yo dejaría el formulario para que solo acepte números.

La cuestión de solicitar ayuda, es porque no logro entender muy bien el funcionamiento de los Array, y no deseo una clase, sino que necesito un pequeño empujón (ayuda a solucionar el presente caso), para entender cómo funcionan. El principal motivo de esto es que, al finalizar todo el proyecto, lo que haré es agregar el formulario a un "Addin", en el cual ya tengo varios procedimientos, por lo que dejar la validación hacia una hoja, al final me daría problemas, ya sea de ejecución, compilación, o simplemente no haría lo que solicito.

Quedo atento a tus comentarios.

Share this post


Link to post
Share on other sites
Hace 49 minutos , Leopoldo Blancas dijo:

Hola @aaquino,

Te recomiendo que no revuelvas el código, el que es para formularios tratalo en el mismo Módulo del formulario. No en un módulo estandar.

Lo que para mi es más lógico es lo siguiente.

  1. El ARRAY lo hago publico primero con nombre aArray.
  2. Cargar el ARRAY cuando abres el formulario.
  3. Valido lo ingresado al ComboBox, aquí es mejor hacer una función que te valide si lo encontró o no, y que la función te regrese False o True.
  4. Y después sigues lo que quieras en el código del formulario.

Espero me haya dado a entender.

Saludos

P.D.: Espero que sea lo que necesitas,

cualquier duda al respecto... por aquí andamos.

 

Muestra AE.xlsm 23 kB · 1 download

Que tal mi estimado @Leopoldo Blancas

He validado tu solución, sin embargo, tal como le comenté a Gerson, dejar la información grabada en una hoja no me funciona, ya que al final de todo mi proyecto, el formulario y demás, lo dejaré como parte de un "Addin", entonces es por ello que necesito que, ya sea el array o alguna otra solución, quede dentro del mismo código y no ligado a una hoja.

Quedo atento a tus comentarios.

Share this post


Link to post
Share on other sites
Hace 11 minutos , aaquino dijo:

Que tal mi estimado @Leopoldo Blancas

He validado tu solución, sin embargo, tal como le comenté a Gerson, dejar la información grabada en una hoja no me funciona, ya que al final de todo mi proyecto, el formulario y demás, lo dejaré como parte de un "Addin", entonces es por ello que necesito que, ya sea el array o alguna otra solución, quede dentro del mismo código y no ligado a una hoja.

Quedo atento a tus comentarios.

En alguna parte del Universo deben de existir esos códigos,..... en el mismo formulario?, en un Archivo de Texto?, van a cambiar?, en una hoja web?.... 

Si me explicas y respondes lo que te pregunto a lo mejor hay una solución...

Saludos.

Share this post


Link to post
Share on other sites
Hace 2 minutos , Leopoldo Blancas dijo:

En alguna parte del Universo deben de existir esos códigos,..... en el mismo formulario?, en un Archivo de Texto?, van a cambiar?, en una hoja web?.... 

Si me explicas y respondes lo que te pregunto a lo mejor hay una solución...

Saludos.

Que tal Leopoldo, te comento, y tal vez no me he dado a entender.

Lo único que necesito que quede en el Array, o en la solución propuesta, son los números del 1 al 7, ya que lo único que estoy validando es el primer dígito que se ingrese en el combobox, los códigos ingresados en el combobox serán almacenados en otro lado.

Lo único que necesito es que en alguna Variable me queden almacenados los números del 1 al 7, y que al momento de ingresar el primer dígito en el combobox valide si ese primer dígito existe en la variable, es decir, si el primer dígito ingresado en el combobox es 1, 2, 3, 4, 5, 6 o 7.

Quedo atento a tus comentarios.

Share this post


Link to post
Share on other sites

Si lo quieres guardar en una variable puede ser así:

De forma individual en tu formulario con un array.

Private Sub UserForm_Initialize()
    aValidos = Array(1, 2, 3, 4, 5, 6, 7)
End Sub

o Como una cadena de Texto en el mismo Formulario ?

Private Sub UserForm_Initialize()
   
cValidos="1234567"
End Sub

Saludos.

 

P.D.: CREO QUE NO TIENES EXPERIENCIA EN HACER UN LIBRO DE EXCEL COMO COMPLEMENTO Y POR ESO TUS DUDAS... QUE NO DEBE DE HABER.

 

Share this post


Link to post
Share on other sites
Hace 8 minutos , Leopoldo Blancas dijo:

Si lo quieres guardar en una variable puede ser así:

De forma individual en tu formulario con un array.

Private Sub UserForm_Initialize()
    aValidos = Array(1, 2, 3, 4, 5, 6, 7)
End Sub

o Como una cadena de Texto en el mismo Formulario ?

Private Sub UserForm_Initialize()
   
cValidos="1234567"
End Sub

Saludos.

 

P.D.: CREO QUE NO TIENES EXPERIENCIA EN HACER UN LIBRO DE EXCEL COMO COMPLEMENTO Y POR ESO TUS DUDAS... QUE NO DEBE DE HABER.

 

Gracias por tus comentarios....

Solo que creo que no has leido:

1. Las normas, donde indican claramente que NO  se puede escribir en mayúsculas, para expresar algo con mayor intensidad lo tienes que hacer con negrita.

2. Lo que le dije a Gerson, que no conozco muy bien el uso de los arrays, no que no supiera hacer un libro como complemento.

Veré si lo que me has dado como solución funciona, sino lo haré saber.

Share this post


Link to post
Share on other sites
Hace 6 horas, aaquino dijo:

Lo único que necesito que quede en el Array, o en la solución propuesta, son los números del 1 al 7, ya que lo único que estoy validando es el primer dígito que se ingrese en el combobox, los códigos ingresados en el combobox serán almacenados en otro lado.

Lo único que necesito es que en alguna Variable me queden almacenados los números del 1 al 7, y que al momento de ingresar el primer dígito en el combobox valide si ese primer dígito existe en la variable, es decir, si el primer dígito ingresado en el combobox es 1, 2, 3, 4, 5, 6 o 7.

Pues mira el adjunto, hay varias formas, y te darás cuenta, que no es para nada complicado

Espero entenderte 

 

Saludos

Buscar variable en array_GP.zip

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy