Como hago para que el orden correlativo sea de 1 en 1 automático, ej: 1,2,3,4,5,...

Necesito que el primer valor en este caso n° informe, vaya de 1 en 1, automático sin que se pueda editar del userform "formulario" cada vez que se agregue un formulario nuevo vaya como dije anteriormente 1,2,3,4,5... Etc se que debe ser en el form inisialize, pero también quiero que guarde en la hoja, checa la foto

Respuesta
1

Dentro de evento initialize pon lo siguiente:

    Set h = Sheets("BaseDeDatos")
    '
    'Poner número de informe
    u = h.Range("A" & Rows.Count).End(xlUp).Row
    If u = 2 Then
        numero = 1
    Else
        numero = h.Range("A" & u).Value + 1
    End If
    txtninforme.Enabled = False
    txtninforme.Value = numero

Dentro de tu evento para guardar los datos a la hoja, pon lo siguiente:

    'Incrementar número de informe
    numero = Val(txtninforme.Value) + 1
    txtninforme.Value = numero

Sal u dos

Va de 2 en 2 

¿Tienes algún otro código que incremente?

Puedes poner el código que tienes en tu evento initialize

Y también el código que tienes en tu botón de guardar.

Y también revisa en todo tu código si en algún momento modificas el dato del txtninforme

Esto esta dentro del botón guardar formulario

Esto esta dentro del evento inicialize

Pero este código lo tienes que poner después de pasar los datos en la hoja, después de los combos, ahí lo pones.

 'Incrementar número de informe
    numero = Val(txtninforme.Value) + 1
    txtninforme.Value = numero

sal u dos

1 respuesta más de otro experto

Respuesta
1

Prueba esta macro cuenta las filas con datos y va aumentado 1 al total bloqueando el textbox para impedir que pueda ser cambiado

Private Sub UserForm_Initialize()
filas = Range("a1").CurrentRegion.Rows.Count - 2
If filas > 1 Then filas = filas + 1
With TextBox1
    .Text = filas
    .Locked = True
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas