Como cargo cargo otra hoja a través de los combobox

Dante mira, tengo un cuarto form que es de sacar reporte, tengo esto que al seleccionar una fecha o, la prioridad o nombre quien registro, me pueda listar y a la vez me cargen los datos en la hoja "Reporte"

Fecha :  F

              Desde (el menor)

               Hasta (el mayor)

Prioridad : L

Nombre quien registro : G

Pero en los datos que necesito que carguen son estos solamente que ves en la hoja reporte, "Fechamonitoreo", "Taqequipo", "Desc Equipo", N° Aviso, "Prioridad", "Diagnostico".

Al momento de presionar el botón Generar reporte, se cargen los datos en la Hoja "Reporte" para luego yo insertar el código para que me exporte solo esa hoja con esos datos que se seleccionaron en los combobox y se copiaron en la hoja "REPORTE"

1 respuesta

Respuesta
2

Te anexo la parte para llenar el listbox, cada que cambias un dato en los combos

Dim h
'
Private Sub ComboBox1_Change()
'Por Dante Amor
    Call LlenarList
End Sub
Private Sub ComboBox2_Change()
    Call LlenarList
End Sub
Private Sub ComboBox3_Change()
    Call LlenarList
End Sub
Private Sub ComboBox4_Change()
    Call LlenarList
End Sub
'
Sub LlenarList()
'Por Dante Amor
    ListBox1.Clear
    For i = 3 To h.Range("F" & Rows.Count).End(xlUp).Row
        If ComboBox1.Value = "" Then
            fec1 = h.Cells(i, "F").Value
            fec2 = fec1
        Else
            fec1 = CDate(ComboBox1.Value)
            If ComboBox2.Value = "" Then
                fec2 = fec1
            Else
                fec2 = CDate(ComboBox2.Value)
            End If
        End If
        If ComboBox3.Value = "" Then
            combo3 = h.Cells(i, "L").Value
        Else
            combo3 = ComboBox3.Value
        End If
        If ComboBox4.Value = "" Then
            combo4 = h.Cells(i, "G").Value
        Else
            combo4 = ComboBox4.Value
        End If
        '
        If h.Cells(i, "F").Value >= fec1 And h.Cells(i, "F").Value <= fec2 And _
           h.Cells(i, "L").Value = combo3 And h.Cells(i, "G").Value = combo4 Then
            ListBox1.AddItem h.Cells(i, "F").Value
            ListBox1.List(ListBox1.ListCount - 1, 1) = h.Cells(i, "O").Value
            ListBox1.List(ListBox1.ListCount - 1, 2) = h.Cells(i, "C").Value
            ListBox1.List(ListBox1.ListCount - 1, 3) = h.Cells(i, "L").Value
            ListBox1.List(ListBox1.ListCount - 1, 4) = h.Cells(i, "D").Value
            ListBox1.List(ListBox1.ListCount - 1, 5) = i
        End If
    Next
End Sub
'
Private Sub UserForm_Activate()
'Por Dante Amor
    Set h = Sheets("BaseDeDatos")
    For i = 3 To h.Range("F" & Rows.Count).End(xlUp).Row
        If IsDate(h.Cells(i, "F")) Then
            Call Agregar_Fec(ComboBox1, h.Cells(i, "F"))
            Call Agregar_Fec(ComboBox2, h.Cells(i, "F"))
        End If
        Call Agregar(ComboBox3, h.Cells(i, "L"))
        Call Agregar(ComboBox4, h.Cells(i, "G"))
    Next
End Sub
'
Sub Agregar_Fec(combo As ComboBox, dato As String)
'Por Dante Amor
    'Cargar fechas en los combos
    Dim fec1 As Date
    Dim fec2 As Date
    fec2 = CDate(dato)
    For i = 0 To combo.ListCount - 1
        fec1 = CDate(combo.List(i))
        If fec1 = fec2 Then Exit Sub
        If fec1 > fec2 Then combo.AddItem fec2, i: Exit Sub
    Next
    combo.AddItem fec2 'Es mayor lo agrega al final
End Sub
'
Sub Agregar(combo As ComboBox, dato As String)
'Por Dante Amor
    'Cargar datos en los combos
    For i = 0 To combo.ListCount - 1
        Select Case StrComp(combo.List(i), dato, vbTextCompare)
            Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
            Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
        End Select
    Next
    combo.AddItem dato 'Es mayor lo agrega al final
End Sub

sal u dos

Lo que aparecería en el listbox lo ideal seria de visualización rápida pero que me muestre al seleccionar los combobox, que en el listbox me cargen los siguientes datos

Fecha monitoreo

DESC.EQUIPO

N° AVISO

PRIORIDAD

DIAGNOSTICO

Estos datos necesito que me carguen en el listbox al dejar seleccionado los combobox. Para luego exportar la hoja "Reporte" con los datos que me muestra el listbox

Eso hace el código, carga el listbox cada que modificas cualquiera de los 4 combos.

¿O cuál es la duda?

Mi duda es, que me ordene el listbox pero con otros datos al seleccionar los combobox con estos datos con el nombre de la columna y datos de la columna que se seleccionan en el combobox

           F                                   O                          C                        L                             D

Fecha monitoreo          DESC.EQUIPO       N° AVISO         PRIORIDAD       DIAGNOSTICO

Te dejo la columna que esta asociada a cada celda que quiero mostrar

Por ejemplo si selecciono la prioridad que son tres , al seleccionar por ejemplo la fecha de 22-02-2018 me desplege que prioridad esta en esa fecha si no hay ninguna no me mostrara ninguna, pero por ejemplo si esta PREVENTIVA que me depslege los datos que estan arriba para esa determinada fecha de monitoreo y esa determinada prioridad.

Ya probaste el código, en esta parte se cargan las columnas:

            ListBox1.AddItem h.Cells(i, "F").Value
            ListBox1. List(ListBox1.ListCount - 1, 1) = h.Cells(i, "O").Value
            ListBox1. List(ListBox1.ListCount - 1, 2) = h.Cells(i, "C").Value
            ListBox1. List(ListBox1.ListCount - 1, 3) = h.Cells(i, "L").Value
            ListBox1. List(ListBox1.ListCount - 1, 4) = h.Cells(i, "D").Value

Prueba el último archivo que te envié. Si algo no está bien, me regresas el archivo con datos y me explicas con un ejemplo: qué seleccionas en cada combo y qué debe aparecer en el list

Ahora bien agregue 4 fechas, y solo me muestra 2 en el listbox, mira la hoja "BaseDeDatos" veeras que agregue más datos y más fechas corrrespondientes te devuelvo el archivo

29 y 30 de febrero no son fechas correctas!

De veras! se me olvidaba.

me sale en diferente orden el mes me sale primero.

agrego de esta forma 15-03-2018

y me muestra de esta forma 03-25-2018

Revisa tus fechas las estás poniendo como texto

Debes verificar que realmente estés poniendo una fecha

¿En el botón cuando guarda?

Estás de acuerdo que esa parte no la hice yo.

Tienes esto:

h.Cells(fila, 6).Value = Formulario.txtfechamonitoreo.Value

Tienes que poner esto:

h.Cells(fila, 6).Value = Cdate(Formulario.txtfechamonitoreo.Value)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas