Calcul d'heure et date

Résolu
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007 - 15 sept. 2006 à 18:28
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 11 oct. 2006 à 15:15
Bonjour,
je désire calculer les heures effectuée entre le départ et l'arrivée
je part du format suivant:
Date départ:15/09/06 10:00
Date arrivée:16/09/06 7:00

comment faire pour calculer le nombre total d'heure quelle formule
comment faire pour effectuer un calcul des heures de nuit(la nuit entre 20h et 6h du matin) dans l'exemple: 10h de nuit

d'avance merci à tous

15 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
15 sept. 2006 à 19:28
essaie ceci :

Selection.Value = FrmDate.DTPicker1.Value & " " & _
Format(frmHeure.DTPicker1.Value, "hh:mm")

@++
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
16 sept. 2006 à 00:13
Salut,

tu peux essayer ceci :

dans l'éditeur vb, double clique (dans un des volets, à gauche) sur la feuille concernée et colle le code suivant :

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Dim rMaPlage As Range 
Set rMaPlage = Range("A2:B32")

   If DansPlage(Target, rMaPlage) Then FrmDate.Show 
End Sub 

Function DansPlage(plg1, plg2) As Boolean 
' *** retournera True si plg1 est contenu dans plg2
    DansPlage = False 
    If plg1.Parent.Parent.Name = plg2.Parent.Parent.Name Then 
        If plg1.Parent.Name = plg2.Parent.Name Then 
            
            If Union(plg1, plg2).Address = plg2.Address Then DansPlage = True 
        End If 
    End If 
End Function 

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 sept. 2006 à 18:43
Salut,
va voir dans la catégorie Date & Heure tu as plein de source sur ce sujet
tu dois pouvoir trouver ton bonheur
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
15 sept. 2006 à 18:45
Non je n'ai rien trouvé je cherche encore mais help MEEEEEEEE...
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 sept. 2006 à 18:51
http://www.vbfrance.com/codes/NOMBRE-JOURS-OUVRABLES-ENTRE-DEUX-DATES_183.aspx



J'ai regarder en speed en voila une : NOMBRE DE JOURS OUVRABLES ENTRE DEUX DATES

Après à toi de l'adapter
Bon courage ;)
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 sept. 2006 à 18:52
Dsl je n'ai pas pu la tester car je n'ai plus d'installer VB6 je n'ai que VB.NET 2002 & 2005 mais cela devrai de convenir à mon avis
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
15 sept. 2006 à 19:16
Salut,

Sub test()
Dim dDateDeb As Date
Dim dDateFin As Date

dDateDeb = "15/09/06 10:00"
dDateFin = "16/09/06 7:00"

MsgBox DateDiff("h", dDateDeb, dDateFin)

End Sub

@++
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
15 sept. 2006 à 19:18
salut,

peux tu me dire pourquoi en utilisant
DTPICKER dans excel avec la syntaxe:
Selection.Value = FrmDate.DTPicker1.Value & " " & frmHeure.DTPicker1.Value
j'obtient cela:
16/09/2006 15/09/2006 4:00:00
16/09/2006 date sélectionnée dans mon premier userform
et quand je sélectionne l'heure il ajoute la date du jour en plus
soit 15/09/2006 4:00:00

merci
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
15 sept. 2006 à 23:32
Merci beaucoup Mortalino

puis je encore te demander comment activer les userforme de date par un clic uniquement dans une zone déterminée de type A2:A32 et B2:B32 et que la formule que tu m'as proposée si dessus face la calcul dès qu'on place les deux dates-heures dans les colonnes A et B

merci
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
17 sept. 2006 à 08:16
SAlut

si je souhaite lancer un autre su--userform à partir d'une autre zone c5:d34 par exemple je peux alors juste chager le :
Set rMaPlage = Range("A2:B32")
par
Set rMaPlage = Range("C5:D34")
If DansPlage(Target, rMaPlage) Then AUTREUSERFORM.Show

mais cela ne marche pas
pourquoi?

merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
17 sept. 2006 à 14:04
Salut,

as tu bien mis le code dans
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ?

Quel est ton message d'erreur ?
As tu une ligne surligné en jaune ?

++
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
17 sept. 2006 à 14:53
non aucune car ton systeme fonctionne
seulement je voudrais pouvoir adapter a une autre zone
et mettre en route un autre userform


ou j'y réfléchis en brut la maintenant mais est il possible de faire un seul userform et qu'il mette la bonne réponse dans la bonne cellule
est-ce possible??
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
17 sept. 2006 à 20:34
tu peux aussi faire ceci :

Dim rMaPlage As Range, rMaPlage2 As Range

Set rMaPlage = Range("A2:B32")
Set rMaPlage2 = Range("C5:D34")
If DansPlage(Target, rMaPlage) Or DansPlage(Target, rMaPlage2) Then NomDuUserForm.Show

Dans le code du UserForm, ayant le "Selection.Value = ....."
--> selection veut dire 'la cellule sélectionnée'
0
raphael_george Messages postés 60 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 22 octobre 2007
24 sept. 2006 à 15:37
Salut,
j'ai essayez d'adapter ta programmation à mon document excel mais impossible
je n'arrive pas à comprendre
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rMaPlage As Range

Set rMaPlage Range("B5:H100") 'ici j'ai en fait 12feuilles janvier à décembre et donc j'ai essayé range ("Janvier!B5:H100") mais marche pas

If DansPlage(Target, rMaPlage) Then Userform1.Show
End Sub

Function DansPlage(plg1, plg2) As Boolean
' *** retournera True si plg1 est contenu dans plg2
DansPlage = False
If plg1.Parent.Parent.Name = plg2.Parent.Parent.Name Then
If plg1.Parent.Name = plg2.Parent.Name Then

If Union(plg1, plg2).Address plg2.Address Then DansPlage True
End If
End If
End Function
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
11 oct. 2006 à 15:15
Salut,

c'est normal que cela ne fonctionne pas, il faut placer le code (sans le noms de la feuille --> ("<strike>Janvier!</strike>B5:H100") ) dans chaque procédure Worksheet_SelectionChange
de chaque feuille.

Pour être plus précis, dans l'éditeur vb tu double cliques sur la feuille Janvier (en haut à gauche dans le volet Projet) et tu places le code avec la bonne plage de données (donc concernant janvier), et ainsi de suite jusqu'à décembre

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0