Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dates : suite et fin

1 réponse
Avatar
Michael
Bonjour à tous !

Enfin je termine ma macro de calcul de délai et je m'aperçois qu'un détail
m'a échappé :

J'ai :
en D6 : Date de la demande
en E6 : Heure de la demande
en H6 : Date d'intervention
en I6 : Heure d'intervention
en J6 : Délai calculé par la macro
Un bouton sur Feuil1 qui lance AfficheDelai

Dim Datedemande As Date
Dim Dateintervention As Date
Dim Heuredemande As Date
Dim Heureintervention As Date
Dim delai As Date
Dim compteurdimanchelundi As Integer
Dim compteursamedi As Integer
Dim joursnormaux As Integer
Dim Diffenjours As Integer

Sub AfficheDelai()

compteurdimanchelundi = 0
compteursamedi = 0
joursnormaux = 0
Diffenjours = 0
[J6].Value = 0

Diffenjours = [H6] - [D6]

For j = [D6].Value To [H6].Value

If Weekday(j) = 1 Or Weekday(j) = 2 Then
compteurdimanchelundi = compteurdimanchelundi + 1
End If

If Weekday(j) = 7 Then
compteursamedi = compteursamedi + 1
End If

Next

joursnormaux = Diffenjours - compteurdimanchelundi - compteursamedi

[J6] = Diffenjours - compteurdimanchelundi - compteursamedi * 0.8125 -
joursnormaux * 0.6354166666
If [J6] < 0 Then [J6] = 0

' Exception du l'inter le samedi
k = [H6].Value
If Weekday(k) = 7 And Diffenjours > 0 Then [J6] = [J6] + 0.17708333333

Traitementheures

End Sub

Sub Traitementheures()

'dmd+inter avant midi
If Range("E6").Value <= "0,541666666666667" And Range("I6").Value <=
"0,541666666666667" Then [J6] = [J6] + ([I6-E6])


'dmd+inter apres midi
If Range("E6").Value >= "0,572916666666" And Range("I6").Value >=
"0,572916666666" Then [J6] = [J6] + ([I6-E6])


'dmd matin inter apres midi
If Range("E6").Value <= "0,54166666666666" And Range("I6").Value >=
"0,57291666666" Then [J6] = [J6] + (([I6-E6]) - 0.0520833333333)

'dmd apres midi et inter matin
If Range("E6").Value >= "0,572916666666667" And Range("I6").Value <=
"0,541666666666667" Then [J6] = [J6] - ((0.52083333333 - [I6])) - ([E6] -
0.57291666667)

End Sub


Tout va bien et tout fonctionne à la perfection après de nombreux essais
seulement le probleme qui se pose à moi est que, seulement avec l'aide du
bouton sur Feuil1, il faudrait que ce calcul se passe sur toutes les lignes
non-vides.

D'après vous, dois-je revoir mon code ou y'a't'il une solution de facilité ?

Merci par avance !

1 réponse

Avatar
jb
Il faudrait créer une fonction qui pourrait être utilisée dans le
tableur puis recopiée:

http://cjoint.com/?levZCE6rl3

JB