Datediff vba

adjovi7

XLDnaute Junior
Bonjour,

Je viens solliciter votre aide pour finaliser ma macro.
j'aimerais déclarer ma variable DateDeb et DateFin que je n'arrive pas pour la fonction datediff ci -joint la macro

Sub Macro4()

Application.ScreenUpdating = False
Dim FL1 As Worksheet, Cell As Range, Plage As Range
Dim CalculSem As Variant
Dim DateDeb As Date
Dim DateFin As Date

Set FL1 = Worksheets("Feuil1")
With FL1
Set Plage = .Range("A3:A" & [G65356].End(xlUp).Row)

Plage.Offset(, 1).Resize(, 17).Interior.ColorIndex = xlNone


For Each Cell In Plage

If Cell <> "" Then


DateDeb = Range("G1").Value 'colonne avec les date de présence
DateFin = Range("X2").Value 'date du jour a la cellule X2

CalculSem = DateDiff("ww", DateDeb, DateFin, vbMonday) + 1

'If Cell.Value = "ATTENTE PO" Then Cell.Offset(, 16).Value = CalculSem
If Cell.Value = "ATTENTE PO" And Cell.Offset(, 6) < Date - 22 Then Cell.Offset(, 16).Value = CalculSem


End If
Next Cell
End With

Set FL1 = Nothing
Set Plage = Nothing

Application.ScreenUpdating = True

End Sub


merci pour votre aide
 

Paf

XLDnaute Barbatruc
Re : Datediff vba

Bonjour,

bien que la demande ne soit pas très claire et qu'il n'y a pas de classeur pour confirmer les suppositions, peut-être:

Code:
DateDeb = CDate(Range("G1").Value) 'colonne avec les date de présence
DateFin = CDate(Range("X2").Value) 'date du jour a la cellule X2

A+
 

Bebere

XLDnaute Barbatruc
Re : Datediff vba

bonjour Adjovi
un exemple à adapter

Code:
DateFin = .Range("X2").Value
For Each Cell In Plage
DateDeb = Cell.Offset(, 6).Value 'date en g
Cell.Offset(, 7).Value = NumSem(DateDeb) 'semaine en H
Cell.Offset(, 8).Value = DateFin - DateDeb 'écart en I
Next Cell
End With

Function NumSem(D)
'norme iso
  NumSem = DatePart("ww", D, vbMonday, vbFirstFourDays)
End Function
 

adjovi7

XLDnaute Junior
Re : Datediff vba

Bonjour Bebere
merci pour votre aide
néanmoins je n'ai pas très bien compris votre code

j'aimerais just afficher en colonne Q le nombre de semaines entre deux dates
ma difficulté dans mon précédent message DateDeb = CDate(Range("G1").Value) cette ligne m'affiche une erreur


cordialement
 

Bebere

XLDnaute Barbatruc
Re : Datediff vba

bonjour Adjovi,Paf
nombre de semaine entre 2 dates
nbsem = ((DateFin - DateDeb) / 7) / 4
je pensais que tu voulais le n° de semaine d'ou datepart n° semaine iso
DateDeb = Range("G1").Value'tu le mets dans une boucle?
DateDeb devrait varier il me semble
pas besoin de cdate dans ce cas
 

Discussions similaires

Réponses
1
Affichages
160
Réponses
0
Affichages
137
Réponses
2
Affichages
140

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa