Formules pour facilité la saisie

J

Jacques

Guest
Bonjour à tout le forum,

Voilà j'aimerai avoir un tableau avec ces informations:

Jour du mois et de l'année (Qui doit etre selectionné) heure d'arrivé et heure de départ,
nombres d'heures effectué (qui n'est que le resultat de l'heure d'arrivé et de départ ) exemple
8/12/2002
8h00- 12h00 = 4h00
9/12/2002
7h30 - 10h00 = 2h30
Je ne sais pas si cela est possible, et je ne sais pas si quelqu'un pourra m'aider ( ca serait sympas) mais je vous remercis d'avance.

Jacques
 

deudecos

XLDnaute Impliqué
Salut Jacques, le forum,

C'est possible en effet, mais il nous faudrait quelques precisions.
Entre autre, est ce que tu veux passer par un userform ou directement sur ta feuille ?
Ensuite, une idee de la mise en forme du resultat permettrait de ne pas perdre trop de temps en remise a niveau...

Bonne soiree

Olivier
 
J

Jacques

Guest
Bonsoir deudecos,

Oui je pense qu'il serait bien mieux d epasser par un userform.
La mise en forme du résultat m'importe peut il me suffit que le résultat en lui même soit juste
:whistle: :p
Voilà j'espère que cela inspirera auelqu'un :eek:
Merci pour ta réponse deudecos ;)
 

Gérard DEZAMIS

XLDnaute Accro
Bonjour Olivier et Jacques
Un petit essai (sans USF.... désolé )simplement avec des formules et des listes de validation et une mise en forme conditionnelle pour les bordures de cellules

@+ GD [file name=Jacques1.zip size=3923]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Jacques1.zip[/file]
 

Pièces jointes

  • Jacques1.zip
    3.8 KB · Affichages: 28
B

Blunet

Guest
J'ai Fait un essai sur une feuille classique et un autre avec Excel.

Le pt problème que j'ai rencontré avec les listes, c'est qu'on ne peut mettre deux différentes variables à sélectionner en colonne. Je vais consulter ce que tu as fais pour voir ! En attendant voici comment on peut le faire avec 1 Userform.

Important: se rassurer d'avoirle contrôle DTPiker et la reférence correspondante (MSCOMCT2.OCX)
Dans le menu Outils > Références > Microsoft Date de VBA Excel
Si tu ne le possède pas je l'ai joint tu copies Racine:\\WINDOWS\\System32`\\MSCOMCT2.OCX

Code:
Private Sub UserForm_Initialize()
[quote]Initialisation des durées
          Heures[/quote]
UserForm1.CboHeureDeb.RowSource = 'Feuil3!A2:A' & Sheets('Feuil3') _
    .Cells(2, 1).End(xlDown).Row
CboHeureDeb.ListIndex = -1
UserForm1.CboHeureFin.RowSource = 'Feuil3!A2:A' & Sheets('Feuil3') _
    .Cells(2, 1).End(xlDown).Row
CboHeureFin.ListIndex = -1

[quote]Minutes[/quote]
UserForm1.CboMinDeb.RowSource = 'Feuil3!B2:B' & Sheets('Feuil3') _
    .Cells(2, 2).End(xlDown).Row
CboMinDeb.ListIndex = -1
UserForm1.CboMinFin.RowSource = 'Feuil3!B2:B' & Sheets('Feuil3') _
    .Cells(2, 2).End(xlDown).Row
CboMinFin.ListIndex = -1

[quote]Masque des résultats[/quote]
LblMsgRes1.Visible = False: LblMsgRes2.Visible = False: LblMsgRes3.Visible = False
LblMsgResDate.Visible = False: LblMsgRes1.Visible = False: LblMsgRes2.Visible = False
LblMsgRes3.Visible = False: LblResHeure.Visible = False: LblResMin.Visible = False
LblMsgRes4.Visible = False
End Sub

Private Sub CmdCalculer_Click()
Dim ResHeure, ResMinute As Integer [quote]NbHeure et NbMinutes écoulés

Contrôle des entrées [/quote]
Call Contrôle

[quote]Calcul de la durée, je fais une simple différence sans contrôle Cf. Sub Contrôle[/quote]
ResHeure = CboHeureFin - CboHeureDeb: ResMinute = CboMinFin - CboMinDeb
LblResHeure.Caption = ResHeure: LblResMin.Caption = ResMinute
LblMsgResDate.Caption = DTPicker1.Value

[quote]Affichage du résultat[/quote]
LblMsgRes1.Visible = True: LblMsgRes2.Visible = True: LblMsgRes3.Visible = True
LblMsgResDate.Visible = True: LblMsgRes1.Visible = True: LblMsgRes2.Visible = True
LblMsgRes3.Visible = True: LblResHeure.Visible = True: LblResMin.Visible = True
LblMsgRes4.Visible = True
End Sub

Sub Contrôle()  [quote]Routine de contrôle des entrées
Vérifications des entrées, Chiffres ou autre ?
    Tu dois vérifier ici que les 4 entrées sont des chiffres et non autre chose
    Pour cela utilise ASCII, fonction, proprités
    Exple:(Asc(CboHeureDeb.Value)  80))
'Code
'....

'Logique chronologique [/quote]
If (CboHeureDeb.Value > CboHeureFin) Or (CboMinDeb > CboMinFin) Then
    MsgBox 'Erreur: Fin > Début La fin ne vient pas avant le début  !!', _
            vbCritical, 'Saisie de données'
End If
    
    [quote]'Je te laisse le soin de convertir les minutes en heure lorsque leur différence zst <0
    'Exple: Heure Déb:10h45 ; Heure Fin:20h15
'Code
'....[/quote]

End Sub
 

deudecos

XLDnaute Impliqué
Salut Blunet,

Verifie si le nom de ton fichier n'a pas ni espace, ni accents...

Jacques, j'ai tente qq chose, mais ca n'est pas tres concluant pour le moment. Je te le joins quand meme. Sur la meme feuille tu as la solution de mon ami Gerard, et a cote quasiment la meme chose mais en passant par un userform.
Je continue a chercher un moyen plus simple pour la saisie.

Bonne soiree

Olivier [file name=Jacques1v02.zip size=18031]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Jacques1v02.zip[/file]

Message édité par: Deudecos, à: 17/12/2005 22:04
 

Pièces jointes

  • Jacques1v02.zip
    17.6 KB · Affichages: 37

Statistiques des forums

Discussions
312 339
Messages
2 087 403
Membres
103 537
dernier inscrit
alisafred974