Saltar al contenido

Consecutivo deacuerto a formato


viejo

Recommended Posts

publicado

Buen Dia tengan grandes expertos de la programacion,  acudo a ustedes para ver si me pueden auxiliar respecto a un tema que aparentemente esta muy sencillo pero por mas que le doy vueltas no logro que me salga, espero su valiosa colaboracion para poder terminar esa parte que me hace falta, les explico brevemente pues se trata del registro de 3 campos en una hoja mediante formulario el cual en su parte de inicialize hace o realiza un numero consecutivo, mi problema radica aqui en hacer que ese consecutivo se haga deacuerdo a un formato el cual es el siguiente:

34-07-00-000020-A

en el formato lo que quiero que vaya cambiando es lo que esta con negritas, (osea 34-07-00-000021-A, 34-07-00-000022-A, 34-07-00-000023-A etc;) y lo demas se quede tal cual, ¿como pudiera hacer eso deacuerdo al formulario que tengo?, alguien que me ayude, porfavor.

dejo archivo muestra. de antemano muchas gracias

GenerarConsecutivo.rar

publicado

Sin ve la respuesta de Haplox:

Public Sub INCREMENTARID()
Dim FIN As Range
With Sheets("Hoja1")
   If .Range("A2") = Empty Then
      frmAlta.txtID = 1
   Else
      Set FIN = .Range("A1").End(xlDown)         
      frmAlta.txtID = Left(FIN, 9) & _
                      Format(CLng(Mid(FIN, 10, 6)) + 1, "000000") & _
                      Mid(FIN, 16)
   End If
End With
End Sub

 

publicado

Buen día tengan Haplox y maestro Antoni, de antemano gracias por la aportación, sin embargo al probar el codigo me marca errores para ambos, que les mostraré:

- para el caso de Haplox:

el codigo cumple con la funcion de incrementar el ultimo digito en el formulario, pero cuando inserto en celda solo inserta el 34, no se que sucede ahi

- para el caso de Antoni:

el codigo no me funciona

- para ambos casos:

veo que solo modifica el ultimo digito, pero ¿que pasará cuando llegue al siguiente digito?, es decir, ¿ese "registro de corrimiento" no se dará?, osea asi:

34-07-00-000001-A

34-07-00-000002-A

34-07-00-000003-A

34-07-00-000004-A

34-07-00-000005-A

... 34-07-00-000010-A

 

antoni.rar

publicado

La parte numérica debe estar en las posiciones 10-15 del código, de lo contrario dará el error que comentas.

Sube el archivo en el que se te produce el error para poderlo reproducir.

publicado

Prueba...

Private Sub UserForm_Initialize()
Dim uf&, aDatos
    uf = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    aDatos = Split(Hoja1.Cells(uf, "A"), "-")
    aDatos(3) = CDbl(aDatos(3)) + 1
    txtID = aDatos(0) & "-" & aDatos(1) & "-" & aDatos(2) & "-" & Format(aDatos(3), "000000") & "-" & aDatos(4)
End Sub

Saludos

publicado

Private Sub UserForm_Initialize()
Dim uf&, aDatos
    uf = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    aDatos = Split(Hoja1.Cells(uf, "A"), "-")
    aDatos(3) = Format(CDbl(aDatos(3)) + 1, "000000")
    txtID = Join(aDatos, "-")
End Sub

publicado

En el archivo que has subido no está sustituido el procedimiento INCREMENTARID del Módulo1, por el que yo subí, sustitúyelo y verás como funciona.

publicado

Leopoldo cual de los dos codigos debo probar?, en ambos casosme marca error 9 en tiempo de ejecucion subindice fuera de intervalo

en esta linea

    aDatos(3) = CDbl(aDatos(3)) + 1

 

publicado

Si no sabes para que sirven las funciones, no las uses:

.Cells(NewRow, 1).Value = Val(Me.txtID) está mal, debe ser .Cells(NewRow, 1).Value = Me.txtID

 

publicado
Hace 22 minutos , viejo dijo:

Leopoldo cual de los dos codigos debo probar?, en ambos casosme marca error 9 en tiempo de ejecucion subindice fuera de intervalo

en esta linea

    aDatos(3) = CDbl(aDatos(3)) + 1

 

:blink:

Te subo archivo... AL ABRIR EL FORMULARIO DE ALTAS AUTOMATICAMNETE TE DA EL CONSECUTIVO.

Saludos.

GenerarConsecutivo.xlsm

publicado

hay algo que no entiendo...¿porque en un principio el formulario de frmAlta si funcionó y despues de cerrarlo ya no lo hizo? y me marcó error 9 en tiempo de ejecucion: subindice fuera de intervalo ¿pues que no se supone que funcionaba y al funcionar se descompuso? o que:D?

el detalle es que no funciona y ahora ya no se porque

publicado

hay veces que los archivos se dañan... por diversas formas, virus, se cerro mal, etc... lo más sano cuando ya no hace lo que hacia es copiar todo a un nuevo archivo...o Hay veces que hay código que entorpece a otro... y no lo deja trabajar normalmente...o Guardamos en la celda algo que Excel -LA MACRO- ya no lo reconoce y por eso te manda ese error....

Hace 40 minutos , viejo dijo:

error 9 en tiempo de ejecucion subindice fuera de intervalo

Saludos.

 

publicado
Hace 24 minutos , Leopoldo Blancas dijo:

En tu celda de la columna A debe de tener este formato 34-07-00-000003-A

ah caray y eso como es?...con click derecho y en formato de celda o como?

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.