Vba: ajouter date et heure de validation de userform

beniboy - 10 déc. 2012 à 21:38
 beniboy - 11 déc. 2012 à 17:50
Bonjour,

J ai cree un formulaire par userform et je souhaite qu automatiquement l heure et la date de generation s affiche dans la cellule excel.
Idealement dans 2 cellules differentes.

J ai regarde avec now mais je ne sais pas comment l ecrire.
En esperant avoir ete clair.

Merci pour le coup de main !!
A voir également:

7 réponses

NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
10 déc. 2012 à 23:15
Bonjour,

VBA n'est pas VB.NET, je déplace, prends en note.

Tu as essayé quoi ?
Format$(Now,"dd/mm/yyyy")

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
bonjour,

ok, compris pour VB et VB.net. merci

oui j'ai mis cela pour l instant via une textbox que je souhaite cacher. je ne sais pas si c'est optimal.
dans mon formulaire j'ai déjà un calendrier où la date du jour s affiche. peut etre peut on utiliser cela ?
sinon le code utilisé pour le moment est :

Private Sub TextBox10_Change()
TextBox10.Value = Now
End Sub


le probleme est que pour avoir l heure et la date, je dois cliquer dans la textbox. elle ne s affiche pas d'elle meme.
0
cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
129
11 déc. 2012 à 13:37
Bonjour,
Essaie ceci:

Private Sub UserForm_Initialize()
Dim Today
Today = Now
Me.Caption = Today
Range("a1").Value = Today
End Sub


Dans l'aide F1 en sélectionnant Now:
Now, fonction, exemple
Cet exemple utilise la fonction Now pour renvoyer la date et l'heure système actuelle.

Dim Today
Today = Now ' Attribue la date et l'heure système actuelle.


@+ Le Pivert
0
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
11 déc. 2012 à 15:14
Bonjour,

Dim Today As Date
Toujours penser à typer les variables.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0

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

Posez votre question
bonjour,

c'est NOW que je souhaite utiliser.
cependant, dans ton exemple, NOW est mis dans une cellule déterminée.
je souhaite qu il soit mis dans la dernière cellule non vide d'une colonne bien précise.
mon userform permets de renseigner des réservations de table au restaurant : nom, prénom, date, etc.
quand il est rempli, il y a un bouton VALIDER qui met chaque info dans une ligne excel et dans la colonne appropriée.
je veux que NOW soit automatiquement affiché lors de la validation du userform.
du coup si j'entre 4 résa, je vais avoir 4 NOW l un en dessous de l autre correspondant à chaque réservation. c est pour cela que ca doit être dynamique.
a la base, je souhaitais créer un textbox avec NOW et cacher cet élément dans le userform mais je ne sais pas si c est la solution optimale.
il existe surement un moyen de l intégrer directement sans création de textbox.

j espère avoir été clair.
merci

voila mon code pour info:

Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim r As Integer
Dim t As Integer
Dim derligne As Integer
    With Worksheets("feuil1")
        derligne = .Range("B65536").End(xlUp).Row + 1
        For Each ctrl In UserForm1.Controls
            On Error Resume Next
            r = Val(ctrl.Tag)
            If r > 0 Then
                Select Case r
                Case 6: Feuil1.Cells(derligne, r) = CDate(ctrl)
                Case 7: Feuil1.Cells(derligne, r) = CDate(ctrl)
                Case 8: Feuil1.Cells(derligne, r) = CInt(ctrl)
                Case 99: Hide
                Case Else: Feuil1.Cells(derligne, r) = ctrl
                End Select
            End If
            On Error GoTo 0
        Next
    End With
    End
End Sub

Private Sub UserForm_Initialize()
Dim tablo(), derligne As Integer
Dim tablonb(), derlignenb As Integer
Dim tablorest() As String
Dim derlignerest As Integer

    'spécifie la date du jour lors de l'affichage de l'USF
    MonthView1.Value = Now
    With Feuil2
        derligne = .Range("B65536").End(xlUp).Row
        derlignenb = .Range("D65536").End(xlUp).Row
        derlignerest = .Range("C65536").End(xlUp).Row
        
            ReDim tablo(3 To derligne)
            ReDim tablonb(3 To derlignenb)
            ReDim tablorest(3 To derlignerest)
        
        
                For i = 3 To derligne
                    tablo(i) = Format(.Range("B" & i), "hh:mm")
                Next i
                ComboBox3.List = tablo
                
                For n = 3 To derlignenb
                    tablonb(n) = .Range("D" & n)
                Next n
                ComboBox4.List = tablonb
                
                For r = 3 To derlignerest
                    tablorest(r) = .Range("C" & r)
                Next r
                ComboBox2.List = tablorest
                
    End With
End Sub
Private Sub TextBox1_Change()
TextBox1.Value = WorksheetFunction.Proper(TextBox1.Value)
End Sub
Private Sub TextBox4_Change()
    TextBox4.Value = Format(TextBox4.Value, "00"" ""00"" ""00"" ""00"" ""00")
End Sub
Private Sub TextBox5_Change()
TextBox5.Value = WorksheetFunction.Proper(TextBox5.Value)
End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
    TextBox2.Value = Format(DateClicked, "dd/mm/yyyy")
    TextBox6.Value = Format(DateClicked, "dddd dd mmmm yyyy")

End Sub
0
cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
129
11 déc. 2012 à 15:49
Voici un code pour afficher la date en cliquant sur la date du contrôle Monthview. C'est valable pour la colonne A. A toi de l'adapter à tes colonnes:

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
Dim Today As Date
Dim DernLigne As Long
Today = Now
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A" & DernLigne).Select 'derniere ligne
ActiveCell.Offset(1, 0).Value = Today 'affiche la date en dessous
End Sub



@+ Le Pivert
0
merci au top !!!

le Pivert a encore frappé !!

a+
0