• Initiateur de la discussion Initiateur de la discussion adjovi7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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+
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
7
Affichages
316
Réponses
5
Affichages
705
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
447
Retour