Hola!
Tengo un combobox "Proveedores" que selecciona proveedores de una hoja pero
al desplegar el combobox, si en lugar de seleccionar un proveedor, yo escribo
una letra que no concide con la inicial de alguno de los provedores, me da el
error 1004.
El combobox "Proveedores" filtra los productos por proveedores del combobox
"Productos".
Los resultados del combobox productos van al Textbox1.
El código es el siguiente:
Private CargandoProveedores As Boolean
Private Sub UserForm_Initialize()
CargandoProveedores = True
Productos.ColumnCount = 2
Productos.ColumnWidths = "75;40"
With Worksheets("códigos")
.Range("e1:f1") = .Range("c1")
.Range("a1").CurrentRegion.Offset(, 2).Resize(, 1).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=.Range("e1"), Unique:=True
.Columns("e").Sort Key1:=.Range("e1"), Order1:=xlAscending, Header:=True
Proveedores.List = .Range(.Range("e2"), .Range("e2").End(xlDown)).Value
End With
CargandoProveedores = False
End Sub
'Inhabilita botón "Cerrar formulario"
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Use el botón CERRAR del formulario", vbInformation, " Botón No
Disponible "
Cancel = 1
CloseMode = 1
End If
End Sub
Private Sub Proveedores_Change()
Productos.Clear
If CargandoProveedores Then Exit Sub
With Worksheets("códigos")
.Range("f2") = Proveedores.Value
.Range("h1:i1").Value = .Range("a1:b1").Value
.Range("a1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=.Range("f1:f2"), _
CopyToRange:=.Range("h1:i1")
With .Range("h1").CurrentRegion
Productos.List = .Offset(1).Resize(.Rows.Count - 1).Value
End With
End With
End Sub
Private Sub Productos_Change()
With Worksheets("códigos")
TextBox1 = Productos.Value
End With
End Sub
Private Sub UserForm_Terminate()
With Worksheets("códigos")
.Columns("d:i").Clear
Debug.Print .UsedRange.Address
End With
End Sub
Gracias por la ayuda,
Darío
Leer las respuestas