Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 04/02/2010, 00h30   #1
Nouveau membre du Club
 
Date d'inscription: janvier 2010
Messages: 52
Par défaut Resultat de duree entre deux heures dans une txtbox

Bonjour le forum

Je but sur un problème

Je voudrais calculer le temps entre deux heures que je rentre dans 2 txtbox.
Je voudrais que se résultat s'affiche dans une troisième txtbox.

Merci de votre aide
crashfire est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 01h09   #2
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 253
Par défaut

Bonsoir:
Code :
Private Sub TextBox1_AfterUpdate()
Dim diffmin As Integer, h As Integer, mn As Integer
On Error GoTo fin
diffmin = DateDiff("n", CDate(Me.TextBox1), CDate(Me.TextBox2))
h = Int(diffmin / 60)
mn = diffmin - 60 * h
Me.TextBox3 = h & ":" & mn
fin:
End Sub
Private Sub TextBox2_AfterUpdate()
Dim diffmin As Integer, h As Integer, mn As Integer
On Error GoTo fin
diffmin = DateDiff("n", CDate(Me.TextBox1), CDate(Me.TextBox2))
h = Int(diffmin / 60)
mn = diffmin - 60 * h
Me.TextBox3 = h & ":" & mn
fin:
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 01h18   #3
Nouveau membre du Club
 
Date d'inscription: janvier 2010
Messages: 52
Par défaut

Merci mercatog

Comme toujours tu a la reponse loll

Pourrais tu m'expliquer ton code je comprend comment l'adapter
crashfire est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 01h28   #4
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 253
Par défaut

Avec le commentaire
Code :
Private Sub TextBox1_AfterUpdate() 'après mise à jour de la donnée de textbox1
Dim diffmin As Integer  'la différence en minutes entre textbox1 et textbox2
Dim h As Integer  'le nombre d'heures dans diffmin
Dim mn As Integer  'les minutes restants
 
me.textbox3="" 'on vide textebox3
On Error GoTo fin  'si erreur (textebox1 ou 2 est vide ou une donnée non valide, on sort
diffmin = DateDiff("n", CDate(Me.TextBox1), CDate(Me.TextBox2)) 'F1 sur DateDiff ici la différences en minutes ("n")entre deux dates textbox1 et 2
h = Int(diffmin / 60)  'on divise par 60 et on prends la pertie entière
mn = diffmin - 60 * h  'les minutes restantes
Me.TextBox3 = h & ":" & mn 'on récupère dans textbox3 le résultat sous la forme h:min
fin:
End Sub
 
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 03h33   #5
Nouveau membre du Club
 
Date d'inscription: janvier 2010
Messages: 52
Par défaut

je n'arrive pas a le faire fonctionner


Je t'envoie mon fichier si tu peux m'aider plus

Je l'ai remis comme il était

C'est dans mon UFCarte que je voudrais compter le temps entre départ et fin
Fichiers attachés
Type de fichier : zip BCD.zip (130,1 Ko, 4 affichages)
crashfire est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 11h55   #6
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 253
Par défaut

Bonjour,
désolé, je suis encore en XL2003
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 12h51   #7
Membre du Club
 
Date d'inscription: décembre 2007
Messages: 93
Par défaut

Bonjour

Ci dessous une macro pour calculer les heures

Appel de la procédure
Code :
Private Sub CommandFin_Click()
TextFin.Value = Time
If Not IsDate(TextPrise.Value) Or CStr(TextPrise) = "" Then Exit Sub
If Not IsDate(TextFin) Or CStr(TextFin) = "" Then Exit Sub
calculheure TextPrise, TextFin
End Sub
Code pouvant être utilisé pour le temps d'attente, par exemple

Code :
Private Sub calculheure(tdated As MSForms.TextBox, tdatef As MSForms.TextBox)
Dim dated As Date
Dim datef As Date
Dim minuit As Date
dated = CDate(tdated.Value)
datef = CDate(tdatef.Value)
minuit = TimeSerial(24, 0, 0)
 
If datef > dated Then Me.TextDélai = Format(datef - dated, "hh:nn:ss")
If datef < dated Then Me.TextDélai = Format((minuit - dated) + datef, "hh:nn:ss")
End Sub
A tester

JP014
jp014 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 15h55   #8
Nouveau membre du Club
 
Date d'inscription: janvier 2010
Messages: 52
Par défaut

Merci cela fonctionne

hop encore un resolut
crashfire est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 06h37.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.