Como hacer un consecutivo automático en un label de Useform ?

¿Cómo hacer que el número de consecutivo se cree automáticamente cada vez que se genera una nueva orden en un Useform VBA en excel? Gracias.

Respuesta
1

Prueba la macro, lo pones en el evento initialize el código será en automático

Private Sub UserForm_Initialize()
    Set h = Sheets("Hoja1")
    '
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    cod = WorksheetFunction.Max(h.Range("A2:A" & u - 1))
    If Not IsNumeric(cod) Then cod = 1
    Label1.Caption = cod + 1
End Sub

2 respuestas más de otros expertos

Respuesta
3

Aquí otro ejemplo para cargar el número y después incrementar el número cada que guardas datos en la hoja

Private Sub CommandButton1_Click()
  'guardar datos en la hoja1
  'tú código
  '
  Label1.Caption = Label1.Caption + 1
End Sub
Private Sub UserForm_Initialize()
  Dim oNum As Long, lr As Long, valor As Variant
  With Sheets("Hoja1")
    lr = .Range("A" & Rows.Count).End(3).Row
    valor = .Range("A" & lr).Value
    If IsNumeric(valor) And valor <> "" Then
      oNum = valor + 1
    Else
      oNum = 1
    End If
  End With
  Label1.Caption = oNum
End Sub
Respuesta
1

Este es el resultado de la macro

 

Al dar grabar el valor se grabara en la hoja y al dar nuevo ira aumentado un dígito al consecutivo y este es el código

Private Sub CommandButton1_Click()
numero = Range("a2").CurrentRegion.Rows.Count + 1
Label2 = numero
End Sub
Private Sub CommandButton2_Click()
filas = Range("a2").CurrentRegion.Rows.Count
If Range("a2") = Empty Then filas = 1 Else: filas = filas + 1
Range("a2").Cells(filas, 1) = Val(Label2)
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
numero = Range("a2").CurrentRegion.Rows.Count
Label2 = numero
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas