Abrir formulario mostrando registros totales de la hoja

Me gustaría que al abrir el formulario se mostraran todos los registros de la hoja "Titulos" para poder así añadir, modificar y eliminar cualquier fila o registro seleccionado.

Del mismo modo si busco o modifico o elimino alguna fila debería poder hacerse bien a partir de cualquier fila del total de filas o bien desde las filas resultantes del botón BUSCAR.

Te digo esto para que se tenga en cuenta a la hora de crearse el código para mostrarse todos los registros al abrir el formulario.

1 respuesta

Respuesta
1

Este es el código:

Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("TITULOS")
    Set h2 = Sheets("FILTRO")
    h2.Cells.Clear
    For i = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
        ComboBox1.AddItem h1.Cells(1, i)
        If i > 1 Then ComboBox2.AddItem h1.Cells(1, i)
    Next
    '
    FiltrarTodo h1, h2
    '
    ComboBox1.SetFocus
    ComboBox2.Enabled = False
    cambio = False
End Sub
'
Sub FiltrarTodo(h1, h2)
'Por.Dante Amor
    h1.Cells.Copy
    h2.[A1].PasteSpecial Paste:=xlValues
    'h2.Columns(ucol).Cut
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u > 1 Then
        h2.Columns("A:A").Insert 'Shift:=xlToRight
        h2.[A1] = "FILA"
        h2.[A2] = 1
        h2.[A3] = 2
        h2.Range("A2:A3").AutoFill Destination:=h2.Range("A2:A" & u)
        h2.Cells.EntireColumn.AutoFit
        '
        ucol = h2.Cells(1, Columns.Count).End(xlToLeft).Column
        letra = Evaluate("=SUBSTITUTE(ADDRESS(1," & ucol & ",4),""1"","""")")
        For i = 1 To ucol
            cad = cad & h2.Cells(1, i).Width + 1 & ";"
        Next
        ComboBox1.SetFocus
        ComboBox2.Enabled = False
        ListBox1.ColumnCount = ucol
        ListBox1.ColumnWidths = cad
        '
        ListBox1.RowSource = h2.Name & "!A2:" & letra & u
    End If
End Sub

 s a l u d o s

Funciona bien salvo que cuando muestra todos los registros indica que el primer registro "El Pajaro Africano" es fila 1 cuando en realidad es fila 2. Si hacemos búsqueda de "El Pajaro Africano" indica fila 2. En la fila 1 están los encabezados de columna.

Habría que modificar eso y te puntúo claro está

Saludos

Tienes razón

Hay que cambiar esto

h2.[A2] = 1
h2.[A3] = 2

Por esto

h2.[A2] = 2
h2.[A3] = 3

La pregunta no admite más respuestas

Más respuestas relacionadas