Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userform avec insertion automatique de l'heure

  • Initiateur de la discussion Pupul
  • Date de début
P

Pupul

Guest
Bonjour à tous,

Je souhaite réaliser un userform avec une insertion automatique dans une case l'heure qu'il est lorsque l'on valide le userform.

Voici les détails :

Dans le fichier joint, vous trouverez un tableau très simple avec un exemple de ce que je veux réaliser.
J'ai créé un userform simple sans code (je ne connais rien en programmation) avec un champ texte où l'on tape la ligne que l'on souhaite (qui correspond au numéro de dossard du coureur) et un bouton de validation.
Je souhaite voir afficher, lorsque l'on met dans le formulaire un numéro de ligne, l'heure qu'il est lorsque l'on valide en appuyant sur le bouton.
L'heure sera donc affichée sur la ligne correspondante et sur la colonne E en premier puis F si E est déjà rempli puis G si F est rempli...

Exemple :
Si je mets le chiffre 8 dans le formulaire et que je valide, Excel va m'affiche l'heure qu'il est actuellement (heure fixe) dans la case E8, idem si je mets 12 : affichage de l'heure en E12.
Par la suite si je rajoute le chiffre 8, Excel me mettra l'heure dans la case F8 (E8 étant déjà pleine)...

J'espère être compréhensible.

Je travaille sur Excel 2002.

Merci d'avance pour vos réponses.
 

Pièces jointes

  • heure_auto.xls
    22 KB · Affichages: 1 223
F

fahd

Guest
bon je pe pas telecharger ton fichier xls, ca vien de chez moi...mais g la solution
vas y ds ta userform, clikc deux fois sur le boutton, tu tombera directement sur une method evenementiel dun nom Mybutton_onclick()
à l'interieur de cette method tu tapes
matextbox.text = now()
et c fini )

bon bien sur à la place matextbox , tu tappera le nom de ta textbox a toi
allez bonne chance
 
@

@Christophe@

Guest
Bonjour,

Voici le code à mettre dans ton userform1


Private Sub CommandButton1_Click()
Dim L As Byte

L = TextBox1.Value

Range("E" & L).Value = Format(Now, "hh:mm")
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0
End If
End Sub

La deuxième partie du code est utilisé pour éviter que tu ai une erreurs si tu entre autre choses que un chiffre dans ton textbox de ton userform.

Pour ce que Fahd te dis, c'est correct, mais now() ne suffi pas, cela te donne la date et l'heure, voila pourquoi je passe par Format(now, "hh:mm")

Voila, tient moi au courant

@Christophe@
 
P

Pupul

Guest
Merci pour vos réponse mais malheureusement ça ne marche pas completement :

Pour la méthode de @Christophe@ lorsque je mets 8 dans le formulaire Excel m'affiche bien l'heure en E8 mais si je remets 8 il écrase l'heure d'avant en E8 et remet l'heure actuel dans la meme case E8.

Je souhaite donc que si il y a quelque chose d'écrit dans la case E8 excel note l'heure dans la case qui est situé à sa droite (ici : F8) et ce jusqu'à l'infini (ou DA8 si pas possible)...

Merci encore.
 
@

@+Thierry

Guest
Re Bonjour Pupul


Tiens remplace ton code par celui-ci

Private Sub UserForm_Initialize()
CommandButton1.Default = True
End Sub


Private Sub CommandButton1_Click()
Dim C As Byte
Dim L As Integer

If TextBox1 = "" Then Exit Sub
L = TextBox1.Value
C = Range("IV" & L).End(xlToLeft).Column + 1

Cells(L, C).Value = Format(Now, "hh:mm")
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0
End If
End Sub


J'ai conservé l'ASCII très bien utilisé par @Xtof@, j'ai ajouté une initialize pour que ton CommandBouton régaisse à la première pression sur la touche Entrer... Et j'ai mis un test Exit si la TextBox est Vide...

à chaque nouvelle entrée l'heure s'écrira et se décalera d'une colonne vers la droite...


Bon Aprèm
@+Thierry
 
@

@Christophe@

Guest
Bonjour,

Qui voila, Thierry, merci d'avoir pris le relay, je viens de me réveiller de ma sieste et je n'avais totalement pas lu qu'il fallait décaller l'heure. Mais puisque Thierry est passé par la, la solution est la, lol

Bonne journée à vous tous

@Christophe@
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…