Você está na página 1de 8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

JLD EXCEL
Inicio

EN

CASTELLANO - USAR MICROSOFT EXCEL


Ayuda Consultora Apoyar JLD Excel

EFICIENTEMENTE

Sugerencias y ayuda para Excel en espaol. Ejemplos de funciones y frmulas, grficos y automatizacin de hojas de clculo con Vba.

Acerca de JLD Excel


Anuncios Google

Excel

Filtros

MS Excel 2003

Formulas para Excel

Anuncios Google

Excel 2007

Excel 2003

Macros

Avanzados

T RADUCIR EST A PGINA


Select Language Select Language
Translate Translate

Autofiltro BUSCARV Calendario C OINC IDIR C omparar Listas Consolidar Datos C ONTAR.SI C ontroles Dashboards DESREF Eventos Excel 2007 Excel 2010 Ex ce l 2013 Fechas y hora

Pow ered by Pow ered by

Formato Condicional
Importar Datos INDIC E Tablas/Listas Tips

Funciones y Formulas Gantt Graficos Hipervnculos Listas Desplegables Macros MS Query Mue stra ale atoria O bje tos

BUSCAR EN EL BLOG
Buscar
Bsqueda personalizada

Pareto PDF rangos dinmicos SIFEC HA SUBTO TALES SUMAPRODUCTO

Validacion de Datos Varios

Tablas Dinamicas

Autofiltro de fechas con macros


SBADO, MAYO 14, 2011

Entre su e-mail para suscribirse: Una inesperada lluvia acaba de arruinarme el bautismo de fuego de mi nueva bicicleta XC, una Scott Spark 60

Suscribirse
Delivered by FeedBurner

Suscribirse a un lector de feeds

que estaba programado para este sbado. As que dedicaremos esta maana a un problema que se nos puede presentar a los usuarios de Excel en castellano (o cualquier otra configuracin regional fuera del ingls americano). Supongamos una tabla con fechas y ventas. Podemos mostrar el detalle de ventas de un perodo con facilidad usando Autofiltro. Esto no es ninguna novedad para ninguno de mis lectores (ni para el 99% de los usuarios de Excel). Si queremos analizar los datos de la tabla con frecuencia podemos crear una macro para ahorrarnos algunos de los pasos del uso de Autofiltro. La idea es que en una celda pongamos la fecha de inicio del perodo a analizar, en otra la fecha de cierre del perodo y apretando hagamos correr una macro que haga la tarea. Suponiendo que no somos expertos en Vba, empezamos por grabar las acciones que hacemos para aplicar el autofiltro

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente

1/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

ARCHIVO DEL BLOG


Archivo del Blog

RECOMENDADOS
Economa Excel - en Castellano Soluciones para hojas Excel Contextures Chip Pearson Decision Models Al grabar una macro es recomendable darle un nombre significativo, agregar un mtodo abreviado de teclado (preferentemente combinando la tecla Maysculas) y poner una descripcin de la tarea que cumple la macro. Supongamos que queremos filtrar la lista para que muestre las ventas del segundo trimestre del 2007 (ntese que ya hemos agregado las celdas para introducir las fechas en la parte superior de la hoja)
C om pute rs Blogs

EL cdigo resultante es el siguiente S u bF i l t r a r _ p e r i o d o ( ) ' 'F i l t r a r _ p e r i o d oM a c r o 'F i l t r a rl al i s t ae n t r ed o sf e c h a s ' 'A c c e s od i r e c t o :C t r l + M a y ? s + F ' S e l e c t i o n . A u t o F i l t e r A c t i v e S h e e t . R a n g e ( " $ A $ 6 : $ F $ 2 0 8 8 " ) . A u t o F i l t e rF i e l d : = 1 ,C r i t e r i a 1 : =_ " > = 0 1 / 0 4 / 2 0 0 7 " ,O p e r a t o r : = x l A n d ,C r i t e r i a 2 : = " < = 3 0 / 0 6 / 2 0 0 7 " E n dS u b

El cdigo que resulta de grabar las acciones presenta dos problemas: El rango de la tabla es fijo, Range("$A$1:$F$2083") Los criterios de filtrado tambin estn preestablecidos en el cdigo

Para que nuestra macro sea til tenemos que modificar el cdigo de manera que podamos cambiar las fechas segn nuestras necesidades y que el rango de la tabla se adapte cuando esta cambia.

EST ADST ICAS

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente

2/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

Empecemos por crear dos nombres que se refieran a las celdas B2 (celFechaDe) y B3 (celFechaHasta). La forma m prctica de hacerlo es introduciendo los nombres en el cuadro de Nombres

Ahora editamos nuestro cdigo donde definimos dos variables tipo String (texto) para los criterio de filtrado.

El cdigo es el siguiente S u bf i l t r a r _ p e r i o d o _ m e j o r a d o ( ) D i ms t r C r i t e r i o 1A sS t r i n g D i ms t r C r i t e r i o 2A sS t r i n g s t r C r i t e r i o 1=" > = "&R a n g e ( " c e l F e c h a D e " ) s t r C r i t e r i o 2=" < = "&R a n g e ( " c e l F e c h a H a s t a " ) W i t hA c t i v e S h e e t I f. A u t o F i l t e r M o d e=T r u eT h e n. A u t o F i l t e r M o d e=F a l s e E n dW i t h R a n g e ( " A 6 " ) . A u t o F i l t e rf i e l d : = 1 ,C r i t e r i a 1 : = s t r C r i t e r i o 1 ,_ O p e r a t o r : = x l A n d ,C r i t e r i a 2 : = s t r C r i t e r i o 2 E n dS u b Al activar la macro obtenemos el siguiente resultado

Excel nos informa graciosamente que no se han encontrado filas que cumplan con los criterios!

El problema consiste en que en Vba Excel usa la notacin americana de fechas

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 3/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

(mes/da/ao) de manera que la fecha 01/04/2007 ha sido transformada en 04/01/2007

La segunda fecha no ha sufrido transformacin dado que no existe el mes nmero 30. La forma de solucionar este problema es pasar las fechas a una variable de tipo Long y con esta variable armar la cadena de texto del criterio. El cdigo es: S u bf i l t r a r _ p e r i o d o _ m e j o r a d o ( ) D i ml F e c h a 1A sL o n g ,l F e c h a 2A sL o n g

l F e c h a 1=R a n g e ( " c e l F e c h a D e " ) l F e c h a 2=R a n g e ( " c e l F e c h a H a s t a " ) W i t hA c t i v e S h e e t I f. A u t o F i l t e r M o d e=T r u eT h e n. A u t o F i l t e r M o d e=F a l s e E n dW i t h R a n g e ( " A 6 " ) . A u t o F i l t e rf i e l d : = 1 ,C r i t e r i a 1 : = " > = "&l F e c h a 1 ,_ O p e r a t o r : = x l A n d ,C r i t e r i a 2 : = " < = "&l F e c h a 2 E n dS u b Como puede verse solo definimos dos variables de tipo Long par alas fechas y la cadena de texto de los criterios la armamos con el operador & Ahora nuestro modelo funciona sin inconvenientes, sin importar cules sean las definiciones regionales del sistema

El archivo con ejemplo y el cdigo puede descargarse aqu . Posted by Jorge L. Dunkelman at 12:25 p.m.
Recomendar esto en Google

Labels: Autofiltro, Fechas y hora, Macros

14 comments:
Walter Jesus, 16 mayo, 2011 18:13 Muy bueno, gracias por tus aportes! Pero me llama la atencin cmo es que no se recorre la hoja hacia abajo sino que el encabezado se mantiene mientras que lo filtrado se mueve independiente! Como hiciste eso!? te estara agradecido que me lo comentaras! De antemano gracias! Excelente tu blog!! Saludos! PD: Lastima lo de tu bicicleta pero nunca es tarde para darle su estrenada jeje

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 4/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

Jorge L. Dunkelman, 16 mayo, 2011 18:57 Muy sencillo! Seleccionas la fila adecuada y utilizas Inmovilizar Paneles (en Excel 2007/10 en Vista--Ventana; en Excel 2003 o anterior en el men Ventana--Inmovilizar Paneles). La bicicleta fue estrenada al da siguiente, contra viento y marea (y no poco barro).

Edicson Rodrguez, 17 mayo, 2011 16:28 Excelente comentario, gracias por seguir compartiendo esos detalles que a lo mejor al 90% de los usuarios de Excel no les interesa y no saben de lo que se estan perdiendo y el trabajo que se pueden ahorrar al aplicar todos estos consejo o simplemente lo dinmico que puede ser una hoja de Excel. Nuevamente gracias

Annimo, 22 mayo, 2011 19:57 No creo que este sea al local correcto pero no pude encontrar otro; quisiera consultar donde puedo encontrar un listado de temas o si hay un buscador de temas por las pginas del site. Saludos HBanchieri

Jorge L. Dunkelman, 22 mayo, 2011 20:49 En parte superior del blog hay una nube de etiquetas con los distintos temas. Tambin se puede hacer una bsqueda en la casilla "buscar en el blog".

Annimo, 06 julio, 2011 02:07 Extraordinario blog. Nunca me haba dado la oportunidad de comentar nada, hasta hoy. Gracias a este blog me descubr y me inici en el mundillo de las macros, que encuentro absolutamente fascinante. Quiero hacer una sugerencia al tema, si en lugar de agregar un botn para correr la macro, se crea una macro por evento ligada al cambio en la celda celFechaHasta y validando que haya valor en ambos rangos, se ahorrara otro clic (y se vera bastante ms impresionante No?) Un saludo, estimado autor. Atte Hugo Jimnez

Gaby, 10 febrero, 2012 00:13 Si tienen esta macro modificada ligada al evento de cambio en la celda celFechaHasta, me lo podran compartir, es justo lo que estoy buscando.

Jorge L. Dunkelman, 10 febrero, 2012 11:55 Gaby, en el ejemplo de la nota se puede programar el evento Worksheet_Change con un cdigo como este, por ejemplo

Private Sub Worksheet_Change(ByVal Target As Range) If Union(Target, Range("celFechaHasta")).Address = _ Range("celFechaHasta").Address Then Call filtrar_periodo_mejorado End If End Sub

Juan R Garces, 07 marzo, 2012 22:34 Buenas tardes. Agradezco su ayuda en lo sgte: Tengo un archivo en excel con contrasea y necesito desbloquearlo para poder modificar algunas formular. Trat de hacerlo intruduciendo una macro como vi en un sitio de internet pero el archivo no me permite crear macros ni modificar las existentes. como podr hacer para

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 5/8

06/03/13
desbloquearlo?? Gracias

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

Jorge L. Dunkelman, 08 marzo, 2012 06:56 Juan, hay muchas aplicaciones que se pueden descargar de la Internet para desbloquear contraseas. Si se trata de un archivo desarrollado por otra persona lo ms indicado sera pedirle a ella la contrasea.

JESUS GARCIA, 12 marzo, 2012 22:14 Hola buen dia Jorge primero felicitarte por tu blog esta genial lo estoy leyendo y tengo un duda o pregunta de como puedo hacer con esto, hice todo los pasos a diferencia del ejemplo que tienes yo solo necesito que busque 1 solo valor dentro de la lista: Sub buscar() ' ' buscar Macro ' busca Rex

Dim strCriteria1 As String strCriteria1 = Range("Rex") With ActiveSheet If .AutoFilterMode = True Then .AutoFilterMode = False End With

Range("B2").Select Range("B5").AutoFilter Field:=1, Criteria1:="strCriteria1", _ Operator:=xlAnd End Sub mi problema especificamente es que por ejemplo de la lista que tengo para buscar son codigos A82WM7510 A82WM7051 A82WM7053 A82FJ01 y lo que quiero es que la funcion que haga es que busque por ejemplo A82 y me de los resultados de toda la lista que contengan esas primeras letras, que modificacion tendria que hacer porque solo me da resultados si pongo el nombre completo si no, no me arroja resultados porque me pide que sea exacto el nombre y yo quiere que tenga la funcion de CONTIENE. agradezco de ante mano tu respuesta

Jorge L. Dunkelman, 13 marzo, 2012 19:30 Te sugiero que grabes la accin (con la grabaadora de macros) las acciones de filtrar con el criterio CONTIENE y te fijes luego en el editor de Vba cul es la sintaxis.

Antonio Snchez, 12 abril, 2012 02:31 Hola muy buena esta macro pero tengo un problema para que me lea unas fechas generadas con un calendario en un userform ya que no las reconoce como tal. He probado a volcarlas a una celdas o a unos textbox, pero no las reconoce como fechas. En cambio las escribo manualmente en unas celdas y la macro funciona perfectamente.Te agradeceria si me pudieras ayudar..........

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 6/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente
Jorge L. Dunkelman, 15 abril, 2012 14:46 Hola Antonio, tendra que ver cmo lo ests haciendo, pero si pasas la fecha del Calendar a una celda, sta pasa como fecha. De todas maneras, puedes forzar el tipo de valor en Vba usando la funcin CDate.

Publicar un comentario

Links to this post


Crear un vnculo

Publicar un comentario
E s c r i b eu nc o m e n t a r i o . . .

Comentar como: Cuenta de Google Publicar Vista previa

Entrada ms reciente

Pgina Principal

Entrada antigua

Suscribirse a: Comentarios de la entrada (Atom)

SEGUIDORES
Se produjo un error en este gadget.

APOYAR JLD EXCEL

EST ADST ICAS


547547 Entradas publicadas a la fecha

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 7/8

06/03/13

Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficientemente

Trminos Legales
JLD Excel en Castellano by Jorge Dunkelman is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 Espaa License.
Blogger template On The Road by Ourblogtemplates.com 2009 Back to TOP

file:///C:/Documents and Settings/Winxp/Mis documentos/Downloads/Autofiltro de fechas con macros ~ JLD Excel en Castellano - Usar Microsoft Excel eficiente 8/8

Você também pode gostar