Jump to content

Ayuda macro FECHAS


Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy