OVH Cloud OVH Cloud

Calcul de délais dur dur

4 réponses
Avatar
Michael
Bonjour à tous !

Le moment que je redoutais est arrivé, voilà que l'on me demande de gérer
des heures et des dates sous Excel et là je suis un peu perdu

Je voudrais obtenir ceci

Colonne A : Jour d'appel
Colonne B : Heure d'appel
Colonne C : Jour d'intervention
Colonne D : Heure d'intervention
Colonne E : Temps en heures entre la demande et l'intervention.

Seulement, novice comme je suis, j'ai une farandole de questions !

1°/ Quel format pour quel colonne ?
2°/ Utiliser du code VBA ou des formules ?
3°/ Comment ne pas compter par exemple les dimanches ?
4°/ (Plus compliquée) Comment prendre en compte par exemple que le Lundi il
faut retirer 1h30 de pause déjeuner chez le client et 2 heures le reste de
la semaine ?

Si vous avez ne serait-ce que des conseils, des exemples, je prends
absolument tout !
Merci d'avance à tout le monde et j'espere ne pas trop vous embrouillé la
tete d'un coup !

MERCI !!

4 réponses

Avatar
Herdet
Bonsoir Michael,
Tu dois pouvoir t'en sortir en utilisant les dizaines d'astuces d'Excelabo
particulièrement
Pour les formules : http://www.excelabo.net/xl/dates.php

En VBA, il y a énormément de solutions et le classeur av-evaluate d'Alain
Vallon offre beaucoup de possibilités sur les dates
http://www.excelabo.net/moteurs/download.php

Utilise le moteur de recherche.

Salutations
Robert

"Michael" a écrit dans le me VBAssage de news:


Bonjour à tous !

Le moment que je redoutais est arrivé, voilà que l'on me demande de gérer
des heures et des dates sous Excel et là je suis un peu perdu

Je voudrais obtenir ceci

Colonne A : Jour d'appel
Colonne B : Heure d'appel
Colonne C : Jour d'intervention
Colonne D : Heure d'intervention
Colonne E : Temps en heures entre la demande et l'intervention.

Seulement, novice comme je suis, j'ai une farandole de questions !

1°/ Quel format pour quel colonne ?
2°/ Utiliser du code VBA ou des formules ?
3°/ Comment ne pas compter par exemple les dimanches ?
4°/ (Plus compliquée) Comment prendre en compte par exemple que le Lundi
il
faut retirer 1h30 de pause déjeuner chez le client et 2 heures le reste de
la semaine ?

Si vous avez ne serait-ce que des conseils, des exemples, je prends
absolument tout !
Merci d'avance à tout le monde et j'espere ne pas trop vous embrouillé la
tete d'un coup !

MERCI !!








Avatar
jb
Exemple 1: 9h-13h et 14h- 18h

A B C
1 06:00 19:00 08:00

=MIN(B2;18/24)-MAX(A2;9/24)
-SI(ET(HEURE(A2)<;HEURE(B2)>);1/24;0)

Exemple 2: Pour utiliser Nb.Jours.Ouvres, cocher Outils/Macro
com/Utilitaire Analyse

A B C
10 15/11/04 10:00 15/11/04 16:15 5:15


=MOD(B10;1)-MOD(A10;1)+(NB.JOURS.OUVRES(A10;B10;fériés)-1)*8/24
-SI(ET(HEURE(A10)<;HEURE(B10)>);1/24;0)
+SI(ET(HEURE(A10)>;HEURE(B10)<);1/24;0)


Exemple 3: l'heure d'appel en dehors des heures d'ouverture

=MIN(MOD(B10;1);18/24)-MAX(MOD(A10;1);9/24)+(NB.JOURS.OUVRES(A10;B10;fé riés)-1)*8/24
-SI(ET(HEURE(A10)<;HEURE(B10)>);1/24;0)
+SI(ET(HEURE(A10)>;HEURE(B10)<);1/24;0)

Exemple4: Fonction VBA à placer dans un module

Function Délai(heure_début, heure_fin)
temp_début = Application.Max(#9:00:00 AM#, heure_début)
temp_fin = Application.Min(#6:00:00 PM#, heure_fin)
temp = temp_fin - temp_début
If heure_début < #1:00:00 PM# And heure_fin >= #2:00:00 PM# Then
temp = temp - #1:00:00 AM#
End If
Délai = temp
End Function

Function Délai2(date_début, date_fin)
temp = (date_fin - Int(date_fin)) - (date_début - Int(date_début))
temp = temp + #8:00:00 AM# * (Int(date_fin) - Int(date_début)) '
ne tient pas compte des JF

If Hour(date_début) <= 13 And Hour(date_fin) >= 14 Then
temp = temp - (1 / 24)
End If
If Hour(date_début) >= 14 And Hour(date_fin) <= 13 Then
temp = temp + (1 / 24)
End If
Délai2 = temp
End Function


JB
Avatar
Michael
Merci de ton aide JB

Je pense que je vais utiliser des macros mais je n'arrive pas à utiliser tes
fonctions (novice,novice...) donc si tu peux m'aiguiller je t'en serait
vraiment reconnaissant bien que tu en ai déjà fait beaucoup je trouve !

Re-merci
@+
Avatar
jb
-ALT+F11 pour aller en VBA
-Insertion/Module
-Copier/Coller de la fonction
-Dans le tableur, on utilise la fonction comme une fonction standard
(fx puis personnalisée)

JB