Jump to content
RubenDario

ANSWERED Códigos Autoincrementados

Recommended Posts

Buenas tardes:

Cada vez que voy guardando datos (por ejemplo de proveedores) necesito generarle un codigo con su correspondiente Dígito Vericador. Si no escribo la letra "G" en la columna A, la tabla no crece.

La función que genera el dígito verificador (módulo 11) funciona muy bien.

Todo debe generarse dentro de una TABLA. Me aparecen los errores porque tengo entendido que debo crear otro módulo de incremento del número base ( ?? )

Por mi casi nulo conocimiento de VBA es que recurro a vuestra valiosa ayuda.

Rubén

 

Codigos.xlsm

Share this post


Link to post
Share on other sites
En 21/8/2019 at 2:14 , Haplox dijo:

@RubenDario , no entiendo tu fichero ¿Todos esos cálculos para incrementar el número? ¿La columna "J", dónde la colocarías?. Lo mejor sería un evento de hoja (WorkSheet_Change), pero primero explica lo que te hepreguntado para poder hacerlo

 

Buenas tardes:

Muy amable por contestar @Haplox...

Las columnas "I" y "J" las coloqué sólo como ejemplo de lo que tiene que "suceder" cuando a un código cualquiera se le genera un dígito verificador. Es en la columna "B" en donde deben ir apareciendo los codigos con sus correpondientes dígitos verificadores. Sólo y sólo SI escribo la letra "G" en la columna "A". En realidad yo decidí que sea "G" pudiendo ser cualquier letra.

Y precisamente de ese evento del que hablas creo es la solución, sólo que mis "razonamientos" en VBA son casi nulos. De a poco voy dando pasitos.

Tu aporte puede ayudarme no sabes cuánto.

Muchas gracias

Rubén

Share this post


Link to post
Share on other sites
En 21/8/2019 at 5:09 , Antoni dijo:

Prueba a ver si lo he entendido.

Generar DC.xlsm 18 kB · 4 descargas

Hola Antoni :

Siendo sincero, tú me has solucionado el problema.

Lo he probado y SÍ que lo has entendido !!!

Ahora como no me gusta sólo copiar y adaptarlo a mis hojas en Excel, me encantaría me expliques superficialmente (si no es mucho pedir) lo que sucede en cada línea de código. Quiero razonar para más adelante utilizarlo en otras necesidades que irán apareciendo.

Application.EnableEvents = False --- > Qué función cumple ?

If Not Intersect(Columns("A"), Target) Is Nothing And _
   Target.Row > 1 Then ----> Qué dice ? Que si la celda editada no es en la columna A y... (ya me perdí !!!)

Range("B" & Target.Row) = Range("K1") & " " & _
                                DVMod11(Range("K1")) ---> Aqui se "formatea" el código devuelto por la función ? Que es devuelta como texto ?

Range("K1") = Range("K1") + 1 ---> Aquí es donde incrementas en una unidad el codigo en la celda espeficada !!

Genial maestro !! Me funciona perfectamente sólo que quiero entenderlo un poquito a fondo.

Abrazo Antoni !!

Rubén

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


CTA Templates.png