Ayuda macros excel

Hola buen día, quisiera que me ayudaran sobre la siguiente duda, tengo un libro de excel con 2 hojas, las cuales una es mi base de datos, y la otra necesito que me introduzca automatizado un informe para lo cual, solo necesito dar el rango de fechas que deseo consultar y en mi caso el numero de vehículo "unidad", y en automático me de esos datos.
La segunda duda es tengo un formulario, en la hoja llamada base de datos, pero necesito que en el textbox llamado fecha, ponga en automático o fijos no se como sea, las diagonales de 00/00/00 por ejemplo, o bien que me de la fecha dando clic.
Por su atención y oportuna respuesta muchas gracias.

1 respuesta

Respuesta
1
Solo como sugerencia las preguntas hazlas de una en una, para evaluarlas correctamente,
sino solo me darás una puntuación en vez de dos como en este caso.
Bueno 1) Te sugiero lo siguiente validar con un botón puedes llamarlo cmdFiltrar,
una vez escritos los datos para que vía macro te haga el filtro y te lo copie donde tu lo desees,
En el botón colocas lo siguiente:
Private Sub cmdFiltrar_Click()
Call modFiltra.FiltraDatos(Worksheets("Informe Semanal").Range("Desde"), _
Worksheets("Informe Semanal").Range("hasta"), _
Worksheets("Informe Semanal").Range("Unidad"))
End Sub
Luego creas un modulo en donde escribes o copias lo siguiente:
Option Explicit
Public tipoFecha As Integer
Sub FiltraDatos(Desde As Date, Hasta As Date, Unidad As Integer)
Dim dDesde As String
Dim dHasta As String
Dim linFin As Long
dDesde = ">=" & Format(Desde, "mm/dd/yyyy")
dHasta = "<=" & Format(Hasta, "mm/dd/yyyy")
Range("A12").Select
linFin = Range("A3").SpecialCells(xlLastCell).Row
Range("A12:Q" & linFin).ClearContents
Worksheets("Base Gas").Select
Selection.AutoFilter Field:=1, Criteria1:=dDesde, _
Operator:=xlAnd, _
Criteria2:=dHasta
Selection.AutoFilter Field:=2, Criteria1:=Unidad
Range("A3").Select
linFin = Range("A3").SpecialCells(xlLastCell).Row
Range("C4:S" & linFin).Copy
Worksheets("Informe Semanal").Select
Range("A12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
End Sub
y con eso tendras tus datos en donde quieras
2) En el textBox escribe lo siguiente:
Private Sub txtfecha_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
tipoFecha = 3
frmFechas.Show
End Sub
En donde frmFechas corresponde a un formulario que tiene en su interior el objeto calendario.
y un boton aceptar, en el boton aceptar escribes lo siguiente:
Private Sub cmdaceptar_Click()
If tipoFecha = 1 Then
Worksheets("Informe Semanal").Range("Desde") = frmFechas.Calendar1.Value
ElseIf tipoFecha = 2 Then
Worksheets("Informe Semanal").Range("Hasta") = frmFechas.Calendar1.Value
ElseIf tipoFecha = 3 Then
frminsertar.txtfecha = frmFechas.Calendar1.Value
Me.Hide
Exit Sub
End If
Me.Hide
If Not IsEmpty(Worksheets("Informe Semanal").Range("Desde")) And _
(Worksheets("Informe Semanal").Range("Hasta") < _
Worksheets("Informe Semanal").Range("Desde")) Then
Worksheets("Informe Semanal").Range("Hasta") = ""
MsgBox "La fecha «Hasta» debe ser mayor que " & _
Worksheets("Informe Semanal").Range("Desde") & Chr(13) & _
"Ingrese nuevamente la fecha.", vbCritical
End If
End Sub
Y eso, no olvides cerrar la pregunta y evaluar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas