Accueil – Le CFO masqué › Forums › VBA › Faire une phrase avec la date et l’heure
Étiqueté : VBA : Menu déroulant en cascade
- Ce sujet contient 18 réponses, 2 participants et a été mis à jour pour la dernière fois par
Pimpin, le il y a 4 années et 7 mois.
-
AuteurMessages
-
12 juillet 2020 à 12 h 51 min #71172
Pimpin
ParticipantBonjour à 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:10avec cette ligne :
Sheets (“ACCUEIL”) . range (“d10:w10”) = “Bonjour, nous sommes le ” & d_now & ” et il est ” & t_nowMais 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.14 juillet 2020 à 12 h 19 min #71248Lionel
ParticipantBonsoir 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
14 juillet 2020 à 16 h 50 min #71253Pimpin
ParticipantBonsoir 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ée15 juillet 2020 à 0 h 14 min #71257Lionel
ParticipantRe-,
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
15 juillet 2020 à 0 h 54 min #71258Pimpin
ParticipantSalut mon ami,
Effectivement ça fonctionne correctement maintenant.
Merci encore.17 juillet 2020 à 11 h 39 min #71381Pimpin
ParticipantSalut 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.17 juillet 2020 à 14 h 23 min #71411Lionel
ParticipantSalut 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
17 juillet 2020 à 14 h 33 min #71412Lionel
ParticipantQue 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 ?
17 juillet 2020 à 14 h 59 min #71413Pimpin
ParticipantL’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 If17 juillet 2020 à 16 h 56 min #71425Lionel
ParticipantSi 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.18 juillet 2020 à 0 h 09 min #71426Pimpin
Participantoui 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.
18 juillet 2020 à 14 h 49 min #71511Lionel
ParticipantTout 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.
19 juillet 2020 à 14 h 37 min #71549Pimpin
ParticipantAh 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.25 juillet 2020 à 17 h 05 min #72193Pimpin
ParticipantBonsoir 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 SubPeux-tu m’aider stp ?
Merci.26 juillet 2020 à 14 h 08 min #72206Lionel
ParticipantSalut 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.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.