Hola a todos y enhorabuena por este magnifico foro.
Mi problema es el siguiente. Estoy intentando realizar una hojita de excel para hacer mis facturas. En una hoja doy de alta los productos (codigo del producto, unidad de medicion del producto, familia a la que pertence, nombre corto y descripcion del producto). En otra hoja doy de alta las obras que tengo para cada cliente. En otra hoja doy de alta las tarifas de cada producto para los clientes, pero notese que puedo dar de alta un mismo producto con diferentes precios para un mismo cliente y una misma maquina, pero el precio varia en funcion de la obra. Lo que necesito es que para realizar mi factura al buscar el producto a facturar me muestre en el cuadro combinado del formulario que utilizo los prodcutos que he dado de alta para ese cliente y esa obra en contrato (es decir, que los datos del cuadro combinado se encuentren ya filtrados en funcion de esos dos criterios, cliente y obra). Muchas gracias
Busque codigo en el que lo hacia mediante additem pero el resto de columnas del combobox me aparecen vacias. Si lo hago mediante list me aparecen los datos en las columnas pero no me hace el filtrado como yo deseo. Dejo el enlace con el archivo.
MEGAUPLOAD - The leading online storage and file delivery service
Version 1 del codigo. Con esta version no me hace el filtrado como deseo, pero si me muestra las columnas
Private Sub UserForm_Initialize()
Dim rngrupo As Range, rnCiclo As Range
LineasFactura.Cliente.Value = ActiveSheet.Range("j5")
LineasFactura.Obra.Value = ActiveSheet.Range("j6")
Sheets("tarifas").Select
Selection.AutoFilter Field:=3, Criteria1:=Cliente
Selection.AutoFilter Field:=4, Criteria1:=Obra
Range("a2").Select
Range("A2", Range("A2").End(xlDown).End(xlToRight)).Select
Set rngrupo = Selection.SpecialCells(xlCellTypeVisible)
For Each rnCiclo In rngrupo
Codigo.List = Range("a2", Range("j65536").End(xlUp).End(xlToRight)).Value
Codigo.ColumnCount = 10
Codigo.ColumnHeads = False
Codigo.ColumnWidths = "50;60;0;0;50;80;80;80;0;10;50"
Codigo.ListWidth = 560
Range("A2").Select
Next rnCiclo
Range("A1").Select
Set rnCiclo = Nothing: Set rngrupo = Nothing
End Sub
Version 2 del codigo Con esta version hace bien el filtrado pero solo me carga datos en la primera columna
Private Sub UserForm_Initialize()
Dim rngrupo As Range, rnCiclo As Range
LineasFactura.Cliente.Value = ActiveSheet.Range("j5")
LineasFactura.Obra.Value = ActiveSheet.Range("j6")
Sheets("tarifas").Select
Selection.AutoFilter Field:=3, Criteria1:=Cliente
Selection.AutoFilter Field:=4, Criteria1:=Obra
Range("a2").Select
Range("A2", Range("A2").End(xlDown).End(xlToRight)).Select
Set rngrupo = Selection.SpecialCells(xlCellTypeVisible)
For Each rnCiclo In rngrupo
Codigo.additem rnciclo
Codigo.ColumnCount = 10
Codigo.ColumnHeads = False
Codigo.ColumnWidths = "50;60;0;0;50;80;80;80;0;10;50"
Codigo.ListWidth = 560
Range("A2").Select
Next rnCiclo
Range("A1").Select
Set rnCiclo = Nothing: Set rngrupo = Nothing
End Sub