'Nombre de Dimanche entre 2 dates =SOMMEPROD((JOURSEM(LIGNE(INDIRECT(début&":"&fin)))=1)*1)
Nombre de lundi ... =SOMMEPROD((JOURSEM(LIGNE(INDIRECT(début&":"&fin)))=2)*1)
Salutations!
"Michael" a écrit dans le message de news: %
Bonjour,
Quelqu 'un saurait-il en VBA comment savoir si il y a un lundi ou un dimanche entre deux dates de deux cellules.
Merci d 'avance.!
jb
Function SamDimLun(debut, fin) Dim témoin As Boolean témoin = False For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then témoin = True End If Next j If témoin = True Then SamDimLun = True Else SamDimLun = False End Function
Sub essai() If SamDimLun(#11/1/2005#, #11/5/2005#) = True Then MsgBox "Sam dim lun" End If End Sub
Cette fonction peut également s'utiliser dans le tableur
JB
Function SamDimLun(debut, fin)
Dim témoin As Boolean
témoin = False
For j = debut To fin
If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then
témoin = True
End If
Next j
If témoin = True Then SamDimLun = True Else SamDimLun = False
End Function
Sub essai()
If SamDimLun(#11/1/2005#, #11/5/2005#) = True Then
MsgBox "Sam dim lun"
End If
End Sub
Cette fonction peut également s'utiliser dans le tableur
Function SamDimLun(debut, fin) Dim témoin As Boolean témoin = False For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then témoin = True End If Next j If témoin = True Then SamDimLun = True Else SamDimLun = False End Function
Sub essai() If SamDimLun(#11/1/2005#, #11/5/2005#) = True Then MsgBox "Sam dim lun" End If End Sub
Cette fonction peut également s'utiliser dans le tableur
JB
Michael
Merci ça m'aide déjà bien mais je ne parviens pas a trouver la syntaxe pour incrementer un compteur pour (par ex.) chaque lundi entre mes deux dates.(une en A1 l'autre en C3)
For Each Weekday(j) = 1 compteur = compteur + 1
Merci beaucoup de votre aide !!!
Merci ça m'aide déjà bien mais je ne parviens pas a trouver la syntaxe pour
incrementer un compteur pour (par ex.) chaque lundi entre mes deux
dates.(une en A1 l'autre en C3)
Merci ça m'aide déjà bien mais je ne parviens pas a trouver la syntaxe pour incrementer un compteur pour (par ex.) chaque lundi entre mes deux dates.(une en A1 l'autre en C3)
For Each Weekday(j) = 1 compteur = compteur + 1
Merci beaucoup de votre aide !!!
jb
Sub essai() x = CombienSamDimLun(#11/1/2005#, #11/12/2005#) MsgBox x End Sub
Function CombienSamDimLun(debut, fin) Dim n As Integer n = 0 For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then n = n + 1 End If Next j CombienSamDimLun = n End Function
JB
Sub essai()
x = CombienSamDimLun(#11/1/2005#, #11/12/2005#)
MsgBox x
End Sub
Function CombienSamDimLun(debut, fin)
Dim n As Integer
n = 0
For j = debut To fin
If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then
n = n + 1
End If
Next j
CombienSamDimLun = n
End Function
Sub essai() x = CombienSamDimLun(#11/1/2005#, #11/12/2005#) MsgBox x End Sub
Function CombienSamDimLun(debut, fin) Dim n As Integer n = 0 For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then n = n + 1 End If Next j CombienSamDimLun = n End Function
JB
Michael
Merci infiniment jb pour toutes ces precisions mais je suis (encore) confronté à un probleme :
En G3 : un nombre au format [h]:mm qui correspond à un nombre d'heures sur plusieurs jours. Une constante k qui 'indique (merci !) le nombre de samedi et dimanche.
J'aimerai en G4 avoir G3-(mon nb de jours * 24h) or, k*24 = 120 h (normal...)
mais G3 moins 120 me donne un resultat faux car pour excel c'est un entier et non une heure...
Quelle syntaxe utiliser pour avoir un resultat correct ?
Merci d'avance
Merci infiniment jb pour toutes ces precisions mais je suis (encore)
confronté à un probleme :
En G3 : un nombre au format [h]:mm qui correspond à un nombre d'heures sur
plusieurs jours.
Une constante k qui 'indique (merci !) le nombre de samedi et dimanche.
J'aimerai en G4 avoir G3-(mon nb de jours * 24h) or, k*24 = 120 h
(normal...)
mais G3 moins 120 me donne un resultat faux car pour excel c'est un entier
et non une heure...
Quelle syntaxe utiliser pour avoir un resultat correct ?
Merci infiniment jb pour toutes ces precisions mais je suis (encore) confronté à un probleme :
En G3 : un nombre au format [h]:mm qui correspond à un nombre d'heures sur plusieurs jours. Une constante k qui 'indique (merci !) le nombre de samedi et dimanche.
J'aimerai en G4 avoir G3-(mon nb de jours * 24h) or, k*24 = 120 h (normal...)
mais G3 moins 120 me donne un resultat faux car pour excel c'est un entier et non une heure...
Quelle syntaxe utiliser pour avoir un resultat correct ?
Merci d'avance
jb
Je supposes que tu veux soustraire (en heures) le nombre de SamDimLun de G3: 24 h est représenté par 1, 12 h par 0,5
=G3-H3 par ex si H3 contient le nb de SamDimLun
JB
Je supposes que tu veux soustraire (en heures) le nombre de SamDimLun
de G3:
24 h est représenté par 1, 12 h par 0,5
Je supposes que tu veux soustraire (en heures) le nombre de SamDimLun de G3: 24 h est représenté par 1, 12 h par 0,5
=G3-H3 par ex si H3 contient le nb de SamDimLun
JB
jb
Sub essai() x = CombienSamDimLun(#11/1/2005#, #11/12/2005#) MsgBox x End Sub
Function CombienSamDimLun(debut, fin) Dim n As Integer n = 0 For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then n = n + 1 End If Next j CombienSamDimLun = n End Function
JB
Sub essai()
x = CombienSamDimLun(#11/1/2005#, #11/12/2005#)
MsgBox x
End Sub
Function CombienSamDimLun(debut, fin)
Dim n As Integer
n = 0
For j = debut To fin
If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then
n = n + 1
End If
Next j
CombienSamDimLun = n
End Function
Sub essai() x = CombienSamDimLun(#11/1/2005#, #11/12/2005#) MsgBox x End Sub
Function CombienSamDimLun(debut, fin) Dim n As Integer n = 0 For j = debut To fin If Weekday(j) = 2 Or Weekday(j) = 1 Or Weekday(j) = 7 Then n = n + 1 End If Next j CombienSamDimLun = n End Function