Agregar numeración no continua en excel con vba

Tengo un archivo de la siguiente manera

         A            B        

1       25          DEPOSITO

2      26          DEPOSITO

3 3745 CHEQUE

4 3746 CHEQUE

5

Entonces tengo un userform con un commandbuton para agregar un deposito, pero quiero que siga la numeración de los deposito que en este caso seria 27, ¿cómo puedo hacer esto con un código vba?

1 Respuesta

Respuesta
2

En la imagen puedes ver el resultado, en un combobox te muestra los instrumentos, seleccionas uno y en automático te carga el siguiente consecutivo en el ejemplo cargo el 3749 y al dar click en el botón lo pasa a la hoja

y esta es la macro

Private Sub ComboBox1_Change()
Set DATOS = Range("DATOS")
With ComboBox1
    VALOR = .Value
    INDICE = .ListIndex
End With
If INDICE < 0 Then
    MsgBox ("NO EXISTE ESTE INSTRUMENTO"), vbInformation, "AVISO"
    GoTo SALIR
Else
    CUENTA = WorksheetFunction.CountIf(DATOS.Columns(2), VALOR)
    FILA = WorksheetFunction.Match(VALOR, DATOS.Columns(2), 0)
    Set INSTRUM = DATOS.Rows(FILA).Resize(CUENTA, 2)
    CONS = INSTRUM.Cells(CUENTA, 1)
    TextBox1.Text = CONS + 1
End If
SALIR:
Set INSTRUM = Nothing: Set DATOS = Nothing
End Sub
Private Sub CommandButton1_Click()
Set DATOS = Range("DATOS")
With DATOS
    CUENTA = WorksheetFunction.CountIf(.Columns(1), TextBox1.Text)
    If CUENTA = 0 Then
        F = .Rows.Count: C = .Columns.Count
        .Cells(F + 1, 1) = TextBox1.Text
        .Cells(F + 1, 2) = ComboBox1.Value
    Else
        MsgBox ("CONSECUTIVO REPETIDO"), vbInformation, "AVISO"
    End If
End With
Set DATOS = Nothing
ACTUALIZAR
End Sub
Private Sub UserForm_Initialize()
TextBox1.Locked = True
ACTUALIZAR
End Sub
Sub ACTUALIZAR()
Set DATOS = Range("A1").CurrentRegion
With DATOS
    F = .Rows.Count: C = .Columns.Count
    .Sort KEY1:=Range(.Columns(1).Address), ORDER1:=xlAscending
    Set TABLA = .Columns(C + 4).Resize(F, 1)
    .Columns(2).Copy
    With TABLA
        .PasteSpecial
        .RemoveDuplicates Columns:=1
        Set TABLA = .CurrentRegion
        MATRIZ = TABLA
        ComboBox1.List = MATRIZ
        .Clear
    End With
  .Name = "DATOS"
End With
Set TABLA = Nothing: Set DATOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas