Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 22h16   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 123
Points : 26
Points : 26
Par défaut Différence entre deux dates en heures

Bonjour ,



Je souhaiterai calculer la somme des heures entre deux dates uniquement si la première colonne n'est pas vide. Je m'explique:

Exemple: Ligne 2 on ne la prend pas (car 1ère colonne vide)

On calcule donc le nombre d'heures entre le 26/07/2011 02:00 et le 27/07/2011 23:00 (car on ne prend pas la 4ème ligne vide) ce qui donne 45h.

ensuite on repart ligne 7 et 8 qui donne 31h (entre le 29 à 16h et le 30 à 23h)

Puis on prend ligne 10 à 14 :du 1/08 à 13h au 5/08 à 11h => 94h

et je voudrais sommer toutes ces heures => 170h

Merci d'avance.
Fichiers attachés
Type de fichier : xls DateHeures.xls (20,5 Ko, 9 affichages)
sbz29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 23h05   #2
Membre actif
 
Eric
Inscription : février 2008
Messages : 439
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : février 2008
Messages : 439
Points : 156
Points : 156
Bonjour,

tu devrais essayer un truc du style
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
dim valeur(15)
dim nb as integer
dim tot as integer
'compte les cellules renseignées colonne A + enregistre 
for i= 1 to 15
if cells(i,1)<>"" then
nb=nb+1
valeur(nb)=cells(i,4)
end if
next
for i=1 to nb
tot=tot+(valeur(i+1)-valeur(i))
next
Tout dépend de la longueur de ton tableau, sinon tu peux faire
Code :
DerniereLigne = Range("A65536").End(xlUp).Row
pour trouver la dernière valeur renseignée de ta colonne A

A+
ericdev67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 08h39   #3
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 123
Points : 26
Points : 26
Merci pour ta réponse , en fait je suis obligé de passer par une macro je ne peux pas passer par une formule?
je pourrais passer la plage concernée en paramètre c'est possible ça et faire appelle à ma fonction dans une cellule de totale formaté en heures ?

(je suis débutant sur Excel...)
sbz29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 09h32   #4
Membre confirmé
 
Inscription : octobre 2008
Messages : 273
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : octobre 2008
Messages : 273
Points : 294
Points : 294
Bonjour,

Je te propose en 2 colonnes supplémentaires :

En E2 (à faire glisser jusqu'à la dernière ligne du tableau) :
Code :
=SI(A2="";"";SI(ET(A1<>"";A3<>"");"";D2))
En F2 (à faire glisser jusqu'à la dernière ligne du tableau) :
Code :
=SI(E2="";0;SI(EST.PAIR(RANG(SI(A2="";"";SI(ET(A1<>"";A3<>"");"";D2));E$1:E2;1));(SI(A2="";"";SI(ET(A1<>"";A3<>"");"";D2))-GRANDE.VALEUR(E$1:E1;1))*24;0))
Tu n'as plus qu'à faire la somme de la colonne F.

@+
oOVaveOo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h04   #5
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
Bonjour,
J'ai jeté un coup d'oeil à ton classeur.
Tu ferais mieux de repenser son organisation, cela te ferait moins de travail et te permettrais de faire le total plus facilement.
Toutes tes cellules de la colonne D ont des formules différentes. A quoi sert Excel dans ce cas là ?
D2 : =C1
D3 : =D2+13/24
D4 : =D3+19/24
etc ...
Un calculatrice et un bout de papier te rendrait un meilleur service
Avec Excel utilise au moins une colonne qui contiendrait le nombre d'heure à additionner (par exemple en G2 5, G3 13, G4 19 etc ...
Et alors tu pourrais en en D2 et les cellules qui suivent faire D2 = D1+G2 et ensuite faire l'addition par groupe en fonction de critères.
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h24   #6
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 123
Points : 26
Points : 26
Merci , je m'en suis sorti avec une macro au final
sbz29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web