Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El trabajo del siguiente procedimiento consiste primero en aplicar un Filtro de fechas sobre el campo
'Fecha'; para ello deberemos tener la precaucin de definir las variables con el tipo Long.
El motivo es salvar la configuracin regional enfrentada de nuestra hoja de clculo (dd/mm/aaaa) y la
de VBA (mm/dd/yyyy)... al definirlo como Long (nmero entero), tratamos la fecha como lo que es
para Excel, un nmero entero (en cualquier configuracin regional, un nmero es un nmero...).
Una vez conseguido y aplicado el filtro, seleccionaremos slo las celdas visible empleando el
mtodoSpecialCells(xlCellTypeVisible), a partir del cuerpo de la Tabla con la
propiedad .DataBodyRange
Insertamos y ejecutamos el siguiente procedimiento, asignado al botn 'EXTRAER':
view plainprint?
1.
Sub RangoFecha()
2.
3.
4.
5.
6.
FechaDesde = CDate(Range("B1").Value)
7.
FechaHasta = CDate(Range("B2").Value)
8.
9.
10. ActiveSheet.ListObjects("TblDatos").Range.AutoFilter _
11.
12.
13. 'aplciamos el copiado del resultado
14. Dim rng As Range
15.
16. 'trabajamos slo sobre el cuerpo de la Tabla (.DataBodyRange)
17. 'no sobre cabecera o fila totales
18. With ActiveSheet.ListObjects("TblDatos").DataBodyRange
19.
20.
21.
22.
23.
On Error GoTo 0
29.
30. Else
31.
32.
MsgBox rng.Address
33.
rng.Copy Destination:=Range("C23")
34.
Application.CutCopyMode = False
35. End If
36.
37. 'finalizamos quitando el filtro aplicado
38. ActiveSheet.ListObjects("TblDatos").Range.AutoFilter Field:=1
39.
40. End Sub
El resultado tras la ejecucin de la macro es el siguiente... Tras aplicar el filtro vemos el Cuadro de
mensaje que muestra el rango de celdas visibles dentro del cuerpo de la Tabla