Formulario VBA Excel no abre si cambio nombre titulo

Como dice el titulo; Formulario VBA Excel no abre si cambio nombre titulo.

Tengo una hoja Filtro oculta que es para cuando abre el form, los datos van a esa hoja para filtrarlos en la búsqueda.

Resulta que este form es el que te hable que no veo necesario tenerlo porque era para Clientes pero para no botarlo, quiero tenerlo para quien sabe cuando me hará falta o lo necesite.

Entonces adaptándolo a otra cosa similar (productos) veo que no me permite cambiar los títulos de la hoja Productos, si cambio aunque sea 1 solo, ya el form no abre y desde ayer estoy ciendo si descubro el detalle y no lo he logrado.

Los títulos son los que tienen el form en los labels de cada TextBox.

Luego quisiera que me dieras indicación o dijeras donde esta el detalle

En la hoja Productos, tengo la descripción que deseo.

1 Respuesta

Respuesta
1

H o l a:

En este procedimiento:

Sub buscar_Change()

Después de esta línea:

lista.RowSource = ""

Hay que agregar esta:

Sheets("Filtro").Cells.Clear

Quedaría así:

Sub buscar_Change()
    Application.ScreenUpdating = False
    If pasar = 1 Then 'Para que no busque sin que seleccione el criterio
    Else
        If FiltrarPor = "" Then
            MsgBox "Seleccione el critério a Buscar"
            pasar = 1 'Para que no busque sin que seleccione el criterio
            Buscar = "" 'si no hay criterio, limpia el TextBox
            Exit Sub
        End If
    End If
    pasar = 0 'Para que no busque sin que seleccione el criterio
    lista.RowSource = ""
    Sheets("Filtro").Cells.Clear
    Sheets("Productos").Range("A:G").Copy Sheets("Filtro").Range("A1")
    Sheets("Filtro").Range("A2:G2").Insert Shift:=xlDown
    Sheets("Filtro").Range("B2:G2") = ""
    Sheets("Filtro").Range("A2") = Buscar 'Buscar por CODIGO
    If FiltrarPor.ListIndex = 1 Then 'Buscar por NOMBRE
       Sheets("Filtro").Range("A2") = ""
       Sheets("Filtro").Range("B2") = Buscar
    End If
    If FiltrarPor.ListIndex = 2 Then 'Buscar por Proveedor
       Sheets("Filtro").Range("A2") = ""
       Sheets("Filtro").Range("B2") = ""
       Sheets("Filtro").Range("C2") = Buscar
    End If
    Sheets("Filtro").Range("A1:G22").AdvancedFilter _
                     Action:=xlFilterCopy, _
                     CriteriaRange:=Sheets("Filtro").Range("A1:G2"), _
                     CopyToRange:=Sheets("Filtro").Range("H1:N22")
    Sheets("Filtro").Rows(2).Delete
    fila = Sheets("Filtro").Range("H" & Rows.Count).End(xlUp).Row
    If fila > 1 Then lista.RowSource = "Filtro!H2:N" & fila
    Application.ScreenUpdating = True
End Sub


S aludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas