Hola chicos, tengo un problema con una macro que tengo hecha y creo que está bien, pero no acaba de funcionar, os cuento lo que quiero: esa macro hace un filtro avanzado de una tabla, con unos criterios y pone el resultado en otra parte de la hoja. Entre los criterios, hay dos campos de fecha, para limitar los registros entre una fecha minima y otra maxima. Pues bien, a pesar de que en la tabla original, los datos del campo fecha los tengo bien puestos, por ejemplo, 03/05/2020, cuando en el criterio pongo >=03/05/2020 para incluir esa fecha de la tabla, en el resultado se me pone la fecha
05/03/2020, y me sale el resultado conforme a esa fecha, y ese no es el resultado que quiero tener. He pensado que cada vez que se ejecute la accion, se formatee la columna de la fecha al formato adecuado, o sea "dd/mm/yyyy", pero no funciona, cuando se introduce el dato de la fecha al campo del criterio, lo convierto al formato fecha con CDate, y ya no se que hacer mas para que el resultado de la fecha me salga con el formato dd/mm/yyyy.
Worksheets("Datos").Visible = True
Worksheets("Datos").Activate
Worksheets("Datos").Range("AA2:AE2").Clear 'borra el rango de criterios anterior
Worksheets("Datos").Range("AK1:AR1").CurrentRegion.Clear 'borra el filtro anterior
Worksheets("Datos").Range("B2", Range("B2").End(xlDown)).NumberFormat = "dd/mm/yyyy" 'formateo la columna B del campo Fecha, aunque no es necesario pues los datos ya son correctos
Worksheets("Datos").Range("AA2").Value = CDate(Range("AA2")) 'tambien convierto a tipo fecha el criterio FechaI, aunque tampoco es necesario
Worksheets("Datos").Range("AA2").Value = ">=" & fechaI
Worksheets("Datos").Range("AA2").NumberFormat = "dd/mm/yyyy" 'y formateo al tipo adecuado el campo de criterios de la fechaI
Worksheets("Datos").Range("AB2").Value = CDate(Range("AB2")) 'tambien convierto a tipo fecha el criterio FechaF
Worksheets("Datos").Range("AB2").Value = "<=" & fechaF
Worksheets("Datos").Range("AB2").NumberFormat = "dd/mm/yyyy"
Worksheets("Datos").Range("AC2").Value = cuenta
Worksheets("Datos").Range("AD2").Value = movi
Worksheets("Datos").Range("AE2").Value = concepto
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola chicos, tengo un problema con una macro que tengo hecha y creo que está bien, pero no acaba de funcionar, os cuento lo que quiero: esa macro hace un filtro avanzado de una tabla, con unos criterios y pone el resultado en otra parte de la hoja. Entre los criterios, hay dos campos de fecha, para limitar los registros entre una fecha minima y otra maxima. Pues bien, a pesar de que en la tabla original, los datos del campo fecha los tengo bien puestos, por ejemplo, 03/05/2020, cuando en el criterio pongo >=03/05/2020 para incluir esa fecha de la tabla, en el resultado se me pone la fecha
05/03/2020, y me sale el resultado conforme a esa fecha, y ese no es el resultado que quiero tener. He pensado que cada vez que se ejecute la accion, se formatee la columna de la fecha al formato adecuado, o sea "dd/mm/yyyy", pero no funciona, cuando se introduce el dato de la fecha al campo del criterio, lo convierto al formato fecha con CDate, y ya no se que hacer mas para que el resultado de la fecha me salga con el formato dd/mm/yyyy.
Os traigo aqui la macro:
Range("Datos[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("AA1:AE2"), CopyToRange:=Range("AK1:AR1"), Unique:=False
ActiveWindow.ScrollColumn = 37
Range("AK1").Select
y aqui la macro previa para poner los valores en la parte de los criterios:
fechaI = consultadatos.TextBoxfechaI.Value
fechaF = consultadatos.TextBoxfechaF.Value
cuenta = consultadatos.ComboBoxcuentas.Value
movi = consultadatos.ComboBoxmovi.Value
concepto = consultadatos.ComboBoxconceptos.Value
Unload consultadatos
Worksheets("Datos").Visible = True
Worksheets("Datos").Activate
Worksheets("Datos").Range("AA2:AE2").Clear 'borra el rango de criterios anterior
Worksheets("Datos").Range("AK1:AR1").CurrentRegion.Clear 'borra el filtro anterior
Worksheets("Datos").Range("B2", Range("B2").End(xlDown)).NumberFormat = "dd/mm/yyyy" 'formateo la columna B del campo Fecha, aunque no es necesario pues los datos ya son correctos
Worksheets("Datos").Range("AA2").Value = CDate(Range("AA2")) 'tambien convierto a tipo fecha el criterio FechaI, aunque tampoco es necesario
Worksheets("Datos").Range("AA2").Value = ">=" & fechaI
Worksheets("Datos").Range("AA2").NumberFormat = "dd/mm/yyyy" 'y formateo al tipo adecuado el campo de criterios de la fechaI
Worksheets("Datos").Range("AB2").Value = CDate(Range("AB2")) 'tambien convierto a tipo fecha el criterio FechaF
Worksheets("Datos").Range("AB2").Value = "<=" & fechaF
Worksheets("Datos").Range("AB2").NumberFormat = "dd/mm/yyyy"
Worksheets("Datos").Range("AC2").Value = cuenta
Worksheets("Datos").Range("AD2").Value = movi
Worksheets("Datos").Range("AE2").Value = concepto