Edición de macro Excel pasar de OptionButton para ComboBox
James bond
Seguro recuerdas esta
Private Sub cmbBusque_Click() fecha_inicial = Format(DTPicker1, "mm/dd/yyyy") fecha_final = Format(DTPicker2, "mm/dd/yyyy") Set hf = Worksheets("Filtro"): hf.UsedRange.Clear If OptionButton1 = True Then COLUMNA = Range("E1").Column Set HT = Worksheets("Productos").Range("A1").CurrentRegion End If If OptionButton2 = True Then COLUMNA = Range("D1").Column Set HT = Worksheets("Entrada").Range("A1").CurrentRegion End If If OptionButton3 = True Then COLUMNA = Range("D1").Column Set HT = Worksheets("Salida").Range("A1").CurrentRegion End If '''' If OptionButton4 = True Then COLUMNA = Range("E1").Column Set HT = Worksheets("John Deere").Range("A1").CurrentRegion End If If OptionButton5 = True Then COLUMNA = Range("E1").Column Set HT = Worksheets("CAT").Range("A1").CurrentRegion End If '''' If fecha_inicial > fecha_final Then MsgBox ("Se presenta un problema" & Chr(13) _ & "La fecha inicial es mayor que la fecha final"), vbInformation, "AVISO" Else With HT On Error Resume Next .AutoFilter If Err.Number > 0 Then MsgBox ("No ha seleccionado una opcion"), vbInformation, "AVISO": GoTo SALIDA On Error GoTo 0 .AutoFilter Field:=COLUMNA, Criteria1:=">=" & fecha_inicial, Operator:=xlAnd, Criteria2:="<=" & fecha_final .SpecialCells(xlCellTypeVisible).Copy Destination:=hf.Range("A1") Set AREA = hf.Range("A1").CurrentRegion If AREA.Rows.Count = 1 Then MsgBox ("No hay registros en ese rango de fechas"), vbInformation, "AVISO" ListBox1.RowSource = "": .AutoFilter: txtExistencia.Text = "": GoTo SALIDA End If Set filtra = hf.Range("a1").CurrentRegion Set filtra = filtra.Rows(2).Resize(filtra.Rows.Count, filtra.Columns.Count) With ListBox1 .RowSource = "=Filtro!" & filtra.Address .ColumnHeads = True .ColumnCount = HT.Columns.Count If COLUMNA = 5 Then .ColumnWidths = "55 pt;160 pt;30 pt;75 pt;65 pt;75 pt;220 pt" If COLUMNA = 4 Then .ColumnWidths = "55 pt;160 pt;30 pt;65 pt;220 pt" End With txtExistencia.Text = AREA.Rows.Count - 1 .AutoFilter End With End If SALIDA: End Sub
Después de tener que pasar todo a este libro, fue que vi y pensé ¿(y ahora como hago? Hay mas hojas, por ahora 6 ya están pero hay mas esperando
Ya tengo el ComboBox (cboHojas) en el formulario que carga en Initialize los nombres de las Hojas presentes
cboHojas.List = Array("Productos", "Silverado", "John Deere", "CAT", "Entrada", _ "Salida", "Selecione Hoja") cboHojas.ListIndex = 5 'muestra por default el ítem 5 (ultimo)
Quiero sustituir los optionButton por el Combobox y enlazar este a los nombres de as hojas porque tendría que agrandar el form para que quepan todos los Option y mas tarde cuando aumente la cantidad de hojas de 6 a algunas otras que están para trasladar tendría que estar aumentando aun mas y alargando mucho mas esta macro y el Combo me abarca cualquier cantidad de items hojas y se hace mas corta la macro.
1 respuesta
Respuesta de James Bond
1