Saltar al contenido

Ayuda macro FECHAS


Recommended Posts

publicado

Buenos dias,

Adjunto el fichero el cual contiene una macro, lo que hace es que a partir de los datos que tengo, meta una fecha de inicio y una fecha de fin filtrando asi el campo vencimiento de contrato, y que estos datos se me copien en otra pestaña para realizar una serie de cualculos (pestaña informe).

Mi problema viene que si ejecuto la macro y pongo:

FECHA INICIO: 28/09/2012

FECHA FIN: 28/12/2013

La persona del ejemplo la cual tiene dos tramos, una vez me pone su fecha de vencimiento de contrato el 12/08/2013 y si la ejecuto otra vez me sale 08/12/2013, si la vuelco a ejecutar vuelve a la primera fecha y asi todo el rato. No se pq pasa esto en la otra fecha no ocurre.

Espero me podais iluminar, muchas gracias.

- - - - - Mensaje combinado - - - - -

Por lo que veo y pruebo todo viene del formato fecha a la columna Q, pero solo si la ejecuto mediante la macro, si lo hago mediante DATOS-TEXTO EN COLUMNAS-FORMATO FECHA esto no pasa.

No se pq puede ser.

Ayuda macro.rar

publicado

Amigo, cambia tu procedimiento filtrarfechas por este otro, pruebas y nos cuenta, lo que hice fue con el DATESERIAL fue asegurar que el texto introducido se tome correctamente (si no entiendes preguntas)

Sub filtrarfechas()
Dim sFechaIni() As String
Dim sFechaFin() As String

Application.ScreenUpdating = False
'Se borra la informacion de la pestaña Informe
Sheets("Informe").Select
ActiveSheet.Unprotect
Columns("A:X").Select
Selection.Delete Shift:=xlToLeft
Sheets("Datos").Select
Call FormatoFecha
'Se usan los autofiltros avanzados entre dos fechas

fechaIn = InputBox("Introduce la fecha INICIAL", "Filtrado VENCIMIENTO CONTRATO", "mm/dd/yyyy")
fechaFin = InputBox("Introduce la fecha FIN", "Filtrado VENCIMIENTO CONTRATO", "mm/dd/yyyy")

If Not IsDate(fechaIn) Then Exit Sub
If Not IsDate(fechaFin) Then Exit Sub

sFechaIni() = Split(fechaIn, "/")
sFechaFin() = Split(fechaFin, "/")

fechaIn = Format(DateSerial(sFechaIni(2), sFechaIni(0), sFechaIni(1)), "mm/dd/yyyy")
fechaFin = Format(DateSerial(sFechaFin(2), sFechaFin(0), sFechaFin(1)), "mm/dd/yyyy")

Range("a4").AutoFilter Field:=17, Criteria1:=">=" & fechaIn, Operator:=xlAnd, Criteria2:="<=" & fechaFin
Range("a4").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Informe").Cells(1, 1)

MsgBox "Datos completados", vbInformation, "Informacion"

End Sub[/CODE]

[b]nota[/b]: al trabajar con fechas en Excel y Access debemos tener cuidado ya que muchas veces las fechas que se ven en pantalla no son lo que creemos, esto depende del formato que tenga la celda y del formato regional de nuestra PC.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.