Siento molestar, de verdad que estoy buscando y probando y no me sale bien.
Tengo un problema para calcular dos fechas de dos celdas en Excel. En una celda me aparece el formato fecha incluyendo horas y en otra celda solo fecha.
Intento restarlas y mientras no cambie de mes la fecha larga no hay problema, pero como sea otro mes lo hace mal.
Esta es una foto de las celdas.
Y el código que he comenzado a hacer y que luego necesitaré estos cálculos es este.
Sub RellenarAusencias()
ApplicationOff
'
Dim rng1, rng2 As Range
Dim FechaF As Date
Set Ws = Sheets("AusenciasPnet")
uf1 = ActiveSheet.Range("A65536").End(xlUp).Row: uf2 = Ws.Range("A65536").End(xlUp).Row
iPer = ActiveSheet.Range("D3")
'fper = Day(Application.EoMonth([d3], 0))
fper = DateSerial(Year([d3]), Month([d3]) + 1, 1) - 1
For x = 2 To uf2
valor = Ws.Range("F" & x)
Set busco = ActiveSheet.Range("A7:A" & uf1).Find(valor)
If Not busco Is Nothing Then
r = busco.Row
FechaI = Ws.Range("N" & x): FechaF = Ws.Range("O" & x)
If Ws.Range("O" & x) = "" Then FechaF = fper
If FechaI < iPer Then FechaI = fper
If FechaF > fper Then FechaF = fper
dias = FechaF - FechaI + 1
MsgBox "Inicio " & FechaI & " ,Fin " & FechaF & " ,días " & dias
End If
Next
'
ApplicationOn
End Sub
Para que veáis cuando da el fallo...
La fecha Inicio que aparece en la celda es 28/01/2019 0:00, y sin embargo me lo trata como si fuera el mes "02".
No veo como solucionarlo.
Ah!!, el msgbox que veis en el código lo he puesto para ver si calculaba bien las fechas y por eso me he dado cuenta que lo hace mal.
Gracias.
Moisés.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola de nuevo.
Siento molestar, de verdad que estoy buscando y probando y no me sale bien.
Tengo un problema para calcular dos fechas de dos celdas en Excel. En una celda me aparece el formato fecha incluyendo horas y en otra celda solo fecha.
Intento restarlas y mientras no cambie de mes la fecha larga no hay problema, pero como sea otro mes lo hace mal.
Esta es una foto de las celdas.
Y el código que he comenzado a hacer y que luego necesitaré estos cálculos es este.
Sub RellenarAusencias() ApplicationOff ' Dim rng1, rng2 As Range Dim FechaF As Date Set Ws = Sheets("AusenciasPnet") uf1 = ActiveSheet.Range("A65536").End(xlUp).Row: uf2 = Ws.Range("A65536").End(xlUp).Row iPer = ActiveSheet.Range("D3") 'fper = Day(Application.EoMonth([d3], 0)) fper = DateSerial(Year([d3]), Month([d3]) + 1, 1) - 1 For x = 2 To uf2 valor = Ws.Range("F" & x) Set busco = ActiveSheet.Range("A7:A" & uf1).Find(valor) If Not busco Is Nothing Then r = busco.Row FechaI = Ws.Range("N" & x): FechaF = Ws.Range("O" & x) If Ws.Range("O" & x) = "" Then FechaF = fper If FechaI < iPer Then FechaI = fper If FechaF > fper Then FechaF = fper dias = FechaF - FechaI + 1 MsgBox "Inicio " & FechaI & " ,Fin " & FechaF & " ,días " & dias End If Next ' ApplicationOn End Sub
Para que veáis cuando da el fallo...
La fecha Inicio que aparece en la celda es 28/01/2019 0:00, y sin embargo me lo trata como si fuera el mes "02".
No veo como solucionarlo.
Ah!!, el msgbox que veis en el código lo he puesto para ver si calculaba bien las fechas y por eso me he dado cuenta que lo hace mal.
Gracias.
Moisés.