[RESOLU] problème de temps dans un userform

problème de temps dans un userform [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 26-02-2013 à 19:53:10    

bonjour;
Je suis débutant en vba et j'ai un soucis avec une donnée venant d'excel et récupérée dans mon userform.
Petite explication:
J'ai une feuille ou je place toutes mes formations avec un calcul de temps de formation (entre autre). Depuis le début de l'année, ma cellule cachée contient

Code :
  1. =somme(e2;e51)


et la valeur actuelle est de 42h40 (j'utilise la possibilité des formats de cellule pour afficher comme il faut le contenu)
Seulement, quand je récupère le contenu dans mon userform, je perds mon formatage en heure/minute et je retrouve selon que j'utilise une variable 'date' ou 'string' :  '31/12/1899 18:40:00' ou '1,7777777.....8'
voila mon code (en partie):

Code :
  1. Private Sub UserForm_Initialize()
  2.     Temps.Enabled = False
  3.     Dim valeur As Date, mdate As String
  4.     valeur = Sheets("Formations 2013" ).Range("A2" )
  5.     mdate = valeur
  6.     Temps = mdate
  7. End Sub


Temps est un textedit non modifiable (je rappel que je débute avec vba et même avec excel d’ailleurs)
 
[Il faudra aussi que je vous demande de l'aide pour mon userform, mais cela fera l'objet d'un autre fl de discution.]
 
Ceci étant décrit, maintenant, je fait comment pour garder mon temps en affichage 'heure/minute'?
J'ai essayé de regarder du côté de Format() mais sans être convaincu.
 
Auriez vous une idée, s'il vous plaît?
Merci.
Rémi.


Message édité par rsuinux le 27-02-2013 à 15:13:28
Reply

Marsh Posté le 26-02-2013 à 19:53:10   

Reply

Marsh Posté le 27-02-2013 à 08:43:50    

Bonjour,
Une fonction personnalisée pour ça :

Code :
  1. Function CDUR$(Plage)
  2. Dh = Fix(Plage * 24)
  3. Dm = WorksheetFunction.Round((Plage * 24 - Dh) * 60, 2)
  4. CDUR = Dh & ":" & Dm
  5. End Function


 
et dans le initialize :

Code :
  1. Private Sub UserForm_Initialize()
  2.     Temps.Enabled = False
  3.     Temps = CDUR(Sheets("Formations 2013" ).Range("A2" )
  4. End Sub


A+

Reply

Marsh Posté le 27-02-2013 à 10:20:09    

 
           Bonjour.     Tout simplement pour garder l'affichage de la cellule :

Code :
  1. Private Sub UserForm_Initialize()
  2.     Temps.Enabled = False
  3.             Temps = Sheets("Formations 2013" ).[A2].Text
  4. End Sub


 

Reply

Marsh Posté le 27-02-2013 à 10:26:14    

Merci de vos solutions.
Je teste ça de suite !
 
Et la seconde méthode est la plus simple et la plus efficace! Merci beaucoup!
 
Reste à gérer l'userform....


Message édité par rsuinux le 27-02-2013 à 10:33:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed