Faire une phrase avec la date et l’heure

Accueil – Le CFO masqué Forums VBA Faire une phrase avec la date et l’heure

  • Ce sujet contient 18 réponses, 2 participants et a été mis à jour pour la dernière fois par Pimpin, le il y a 3 années et 9 mois.
15 sujets de 1 à 15 (sur un total de 19)
  • Auteur
    Articles
  • #71172
    Pimpin
    Participant

    Bonjour à toutes et à tous,

    Je suis un vrai débutant en VBA et je voudrais créer une phrase présentable incluant la date et l’heure.
    J’ai pu afficher ce message :
    Bonjour, nous sommes le 12/07/2020 et il est 18:50:10

    avec cette ligne :
    Sheets (“ACCUEIL”) . range (“d10:w10”) = “Bonjour, nous sommes le ” & d_now & ” et il est ” & t_now

    Mais je voudrais afficher :
    Bonjour, nous sommes le dimanche 12 juillet 2020 et il est 18 heures 50 minutes.

    De plus, de 18 heures à minuit mettre Bonsoir
    Et mettre au singulier heure et minute si c’est 0 ou 1 (1 heure ou 1 minute).
    Merci pour votre aide.

    #71248
    Lionel
    Participant

    Bonsoir Pimpin,
    Comment cela fonctionne avec le VBA. Voici un petit code qui te prmettra d’avoir un pop-up avec le message désiré. Après, il te restera à la mettre dans tes cellules au bon endroit.

    Option Explicit
    Sub Welcome()
    
    Dim QuelleHeure As Byte
    Dim QuelleMinute As Byte
    Dim Intro As String, Heu As String, Min As String
    
    QuelleHeure = Format(Now(), "hh")
    If QuelleHeure > 1 Then Heu = "Heures" Else Heu = "Heure"
    If QuelleHeure >= 18 Then Intro = "Bonsoir" Else Intro = "Bonjour"
    QuelleMinute = Format(Now(), "mm")
    If QuelleMinute > 1 Then Min = "Minutes" Else Min = "Minute"
    MsgBox Intro & ", nous sommes le " & Format(Date, "dddd d mmmm yyyy") & _
     Chr(10) & "et il est " & Format(Now(), "hh") & " " & Heu & " et " & Format(Now(), "mm") & " " & Min & "."
    End Sub
    #71253
    Pimpin
    Participant

    Bonsoir QUESTVBA

    Tu es vraiment doué. C’est tout à fait ce je voulais. Pour une fois j’ai été précis dans ma requête on dirait ?
    Par contre mes minutes sont figées sur 07 minutes et je ne sais pas pourquoi ?
    on dirait que c’est bloqué sur le mois lol
    je vais essayer avec left pour voir.
    Merci encore et bonne soirée

    #71257
    Lionel
    Participant

    Re-,
    Sorry, j’ai mis ‘mm’ au lieu de ‘nn’

    Option Explicit
    Sub Welcome()
    
    Dim QuelleHeure As Byte
    Dim QuelleMinute As Byte
    Dim Intro As String, Heu As String, Min As String
    
    QuelleHeure = Format(Now(), "hh")
    If QuelleHeure > 1 Then Heu = "Heures" Else Heu = "Heure"
    If QuelleHeure >= 18 Then Intro = "Bonsoir" Else Intro = "Bonjour"
    QuelleMinute = Format(Now(), "nn")
    If QuelleMinute > 1 Then Min = "Minutes" Else Min = "Minute"
    MsgBox Intro & ", nous sommes le " & Format(Date, "dddd d mmmm yyyy") & _
     Chr(10) & "et il est " & QuelleHeure & " " & Heu & " et " & QuelleMinute & " " & Min & "."
    End Sub

    Pour info, si tu veux connaître les détails de Now

    Sub TestDate()
        MsgBox Format(Now(), "dd")
        MsgBox Format(Now(), "mm")
        MsgBox Format(Now(), "yyyy")
     
        MsgBox Format(Now(), "hh")
        MsgBox Format(Now(), "nn")
        MsgBox Format(Now(), "ss")
    End Sub
    #71258
    Pimpin
    Participant

    Salut mon ami,

    Effectivement ça fonctionne correctement maintenant.
    Merci encore.

    #71381
    Pimpin
    Participant

    Salut QUESTVBA,

    J’ai une petite question très facile pour toi.
    J’aimerais masquer automatiquement le ruban à l’ouverture de mon programme pour qu’un utilisateur ne puisse pas atteindre le menu développeur et modifier ma source.
    Et avant de quitter le programme remettre le ruban à sa place.
    Merci bien.

    #71411
    Lionel
    Participant

    Salut Pimpin,

    Voici une méthode. Elle fait ce que tu demandes : masquer le ruban à l’ouverture et faire apparaître le ruban à la fermeture.
    Les deux PRIVATE SUB suivantes doivent être placées dans ThisWorkbook.

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Rib_Vis = Application.CommandBars("Ribbon").Height > 100
        If Rib_Vis = False Then
            Test_Ribbon
        End If
    End Sub
    Private Sub Workbook_Open()
        Rib_Vis = Application.CommandBars("Ribbon").Height > 100
        If Rib_Vis = True Then
            Test_Ribbon
        End If
    End Sub

    Ensuite, tu crées un module où tu places les deux SUB suivantes :

    Sub Test_Ribbon()
    'Hide Ribbon if it is on the screen in 2010-2013
    If RibbonState = 0 Then
        CommandBars.ExecuteMso "MinimizeRibbon"
    Else
        CommandBars.ExecuteMso "MinimizeRibbon"
    End If
    End Sub
    Function RibbonState() As Long
    'Result: 0=normal, -1=autohide
        RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)
    End Function
    #71412
    Lionel
    Participant

    Que veux-tu dire par ‘un utilisateur ne puisse pas atteindre le menu développeur et modifier ma source‘.

    Que ne doit-il pas faire ? Qu’entends-tu par modifier ta source ?

    #71413
    Pimpin
    Participant

    L’utilisateur ne doit pas pouvoir afficher le ruban et s’en servir pendant l’utilisation du programme.
    Et l’utilisateur ne doit pas pouvoir lire et modifier les lignes d’écriture de mon programme.

    Je te remercie pour les SUB, je vais tester tout ça demain.

    Sinon tu as mis la même ligne de commande dans ton test, c’est normal ?

    If RibbonState = 0 Then
    CommandBars.ExecuteMso “MinimizeRibbon”
    Else
    CommandBars.ExecuteMso “MinimizeRibbon”
    End If

    #71425
    Lionel
    Participant

    Si tu veux éviter qu’il accède à ton code, tu peux y placer un mot de passe.
    Avec ALT F11, tu arrives sur la fenêtre VBA.
    Onglet ‘Outils’ → ‘Propriétés de VBAProject…’ → Onglet ‘Protection’, Cocher ‘Verrouiller le projet pour affichage’ → encoder ton MDP et le confirmer → OK → Quitter → Enregistrer → Fermer le fichier.
    À la prochaine ouverture, il faudra mettre ce MDP pour aller modifier le code des macros.

    #71426
    Pimpin
    Participant

    oui merci beaucoup pour l’info je vais essayer ça ce soir après le taff.
    J’ai 2 autres questions si cela ne te dérange pas ?

    1- comment rendre un bouton de commande qui se trouve sur une feuille non accessible ou en grisé. C’est à dire que le mot de passe de l’administrateur rend disponible tous les boutons. Ce qui n’est pas le cas pour l’utilisateur lenda.

    2- Est-il possible de transformer un programme EXCEL ou VBA en exécutable (.exe) ?

    Merci encore.

    Passe une bonne journée.

    #71511
    Lionel
    Participant

    Tout dépend du type de bouton. Tu peux voir avec ceci

    Private Sub Workbook_Open()
    Worksheets("Onglet").Shapes("Bouton 1").Visible = False
    End Sub

    Pour l’exe, c’est un peu foutu.

    • Cette réponse a été modifiée le il y a 3 années et 9 mois par Lionel.
    #71549
    Pimpin
    Participant

    Ah zut c’est vraiment dommage pour l’exécutable.
    Je n’ai pas encore fait le test pour le bouton mais je te remercie d’avance.

    #72193
    Pimpin
    Participant

    Bonsoir QUESTVBA,

    j’ai recopié un programme que j’ai trouvé sur un tuto mais il bloque sur ‘CLEAR’ et me laisse le message suivant :
    Erreur de compilation
    variable non définie.
    C’est un programme pour faire un menu déroulant en cascade :

    Private Sub Userform_Initialize()
    Dim colonne as Integer
    colonne = 2
    Sheets(“Liste”).Range(“B2:F2”).Interior.ColorIndex = Clear
    Do While Cells (2, colonne).value <> “”
    Userform1.Cbo_sport.Additem Cells (2, colonne).Value
    colonne = colonne + 1
    Loop
    End Sub

    Peux-tu m’aider stp ?
    Merci.

    #72206
    Lionel
    Participant

    Salut Pinmpin,
    Il te faut remplacer tous les « et les » par des ".

    Private Sub Userform_Initialize()
    Dim colonne As Integer
    colonne = 2
    Sheets("Liste").Range("B2:F2").Interior.ColorIndex = Clear
    Do While Cells(2, colonne).Value <> ""
    Userform1.Cbo_sport.AddItem Cells(2, colonne).Value
    colonne = colonne + 1
    Loop
    End Sub

    Attention, je ne connais pas ce code et je ne sais pas ce que tu comptes faire. Je me suis juste arrêter à cette erreur de compilation.

    NB : n’hésite pas à créer un nouveau post car ce sont des sujets différents même s’ils sont dans un même projet.

    • Cette réponse a été modifiée le il y a 3 années et 9 mois par Lionel.
    • Cette réponse a été modifiée le il y a 3 années et 9 mois par Lionel.
15 sujets de 1 à 15 (sur un total de 19)
  • Vous devez être connecté pour répondre à ce sujet.