Crear una macro utilizando un UseForm

Quisiera un soporte en crear una macro consulta a través de un formulario personalizado.

Detallo mi idea para ver si es viable:

Tengo una data donde consolido todos los despachos diarios por fechas, es mi base de datos anual que voy guardando para futuras consultas.

Quisiera ver si a través de un formulario yo puedo seleccionar un cliente y que haga el calculo de la sumatoria de unidades y metros cúbicos según la categoría del producto, que se manejan dos (SMENOR/SMAYOR) (Adjunto foto de la data)

He dibujado un formulario con la idea para este reporte: Donde yo seleccione el cliente y luego haga las sumas en los botones de comando.

Hay un tema el cliente a veces me pide los reportes M3 y unidades por fechas especificas, que pueden ser por ejemplo del 15 de enero al 17 marzo, eso no se como plasmarlo en el formulario, están resaltados en verde, se me ocurre que se despliegue un calendario y elegir las fechas que se requiere que haga las sumatorias de M3 y unidades y me emita un reporte, supongo que faltara agregar mas botones de comando para eso.

Espero se entienda mi idea y puedan darme soporte en ese tema y ver si es factible se los agradecería mucho.

1 Respuesta

Respuesta
1

H o l a:

Envíame tu archivo con el formulario y lo reviso.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Juan Arenas” y el título de esta pregunta.

Estimado Dante, te envié la información a tu correo.Muchas gracias.

H o l a:

Te anexo la parte para realizar las sumas sin las fechas y para cargar los datos en el combo:

Dim h As Object
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
    TextBox1 = ""
    TextBox2 = ""
    If ComboBox1 = "" Then Exit Sub
    u = h.Range("H" & Rows.Count).End(xlUp).Row
    m3 = WorksheetFunction.SumIfs(h.Range("I2:I" & u), h.Range("H2:H" & u), ComboBox1)
    TextBox1 = Format(m3, "#,##0.0000000000")
    ud = WorksheetFunction.SumIfs(h.Range("J2:J" & u), h.Range("H2:H" & u), ComboBox1)
    TextBox2 = Format(ud, "#,##0.0000000000")
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h = Sheets("Ruteos 2015")
    Set ht = Sheets("tmp")
    h.Columns("H").Copy Sheets("tmp").[A1]
    '
    u = ht.Range("A" & Rows.Count).End(xlUp).Row
    ht.Range("A1:A" & u).RemoveDuplicates Columns:=1, Header:=xlYes
    With ht.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range("A2:A" & u): .Header = xlNo: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    '
    For i = 2 To ht.Range("A" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem ht.Cells(i, "A")
    Next
End Sub
'
Private Sub CommandButton3_Click()
    Unload Me
End Sub

Revisa si tienes el control de DTPicker y crea una nueva pregunta para realizar filtros por fecha.


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas