Texte variable en fonction de la date

Résolu/Fermé
Mathieu - Modifié par Mathieu le 21/12/2015 à 21:46
 Mathieu - 21 janv. 2016 à 21:39
Bonjour,
Je voudrais mettre dans une présentation une zone de texte qui change en fonction de la date du jour, comme par exemple afficher un anniversaire en fonction du jour. J'avais pensé à une macro mais comment faire ? Ou sinon d'une autre manière.
Merci d'avance.


A voir également:

3 réponses

m@rina Messages postés 21085 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 novembre 2024 11 355
Modifié par m@rina le 24/12/2015 à 14:09
Bonjour,

J'espère que tu n'as pas 365 dates à remplir !

Voici un exemple de macro qui suppose :
- que la zone de texte se trouve dans la première diapo. Si ce n'est pas le cas, change le numéro (CurrentShowPosition),
- que cette zone de texte se nomme "zone".

Tu mets la macro dans un module quelconque, il s'agit d'une macro automatique, et donc elle se lancera toute seule dès la première diapo affichée en diaporama.
A toi de compléter ce que tu veux faire figure dans la zone de texte, en fonction de la date du jour. Tu dois donc ajouter autant de :
Case "date"
montexte = "XXXXXXXX"

que de jours que tu souhaites compléter.

Sub OnSlideShowPageChange(ByVal diaporama As SlideShowWindow)
'macro écrite par m@rina
Dim jour As Date, montexte As String
jour = Date
Select Case jour
Case "24/12/2015"
montexte = "Reveillon de Noël"
Case "25/12/2015"
montexte = "Noël"
Case "31/12/2015"
montexte="Saint Sylvestre"
End Select

If diaporama.View.CurrentShowPosition = 1 Then
ActivePresentation.Slides(1).Shapes("zone").TextFrame.TextRange.Text = montexte
End If
End Sub


m@rina


Nous ne sommes pas devins : n'oubliez pas d'indiquer la version du logiciel utilisé, et comment vous avez procédé.
1
Merci, mais quand je copie rien ne s'affiche.
Quand tu dis une zone de texte, c'est bien une TextBox ?
Est ce que tu peux m'envoyer une fichier powerpoint avec la macro dedans ?

Merci d'avance, et bonne fêtes de fin d'année :)
0
m@rina Messages postés 21085 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 novembre 2024 11 355
31 déc. 2015 à 19:51
Bonjour,

Non, une zone de texte normale (depuis la galerie des formes), et il faut la nommer avec le nom utilisé dans la macro, à savoir "zone" dans mon exemple (ou le nom que tu souhaites).
0
Super ça marche maintenant, merci vraiment.
Est il possible en plus de faire apparaitre a diapo uniquement en fonction des dates que j'ai rentrées dans la macro ci dessous (j'ai environ une quarantaine de date) ?
Et aussi est il possible aussi de programmer l'affichage d'une diapo uniquement le lundi et une autre uniquement le vendredi ?
Merci
0
m@rina Messages postés 21085 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 novembre 2024 11 355
3 janv. 2016 à 03:52
Bonjour,

Oui tout ça est possible.
Pour commencer, le mieux est de nommer les deux diapos spécifiques aux lundi et vendredi de façon à pouvoir les déplacer sans souci. Pour cela une première macro que tu lances une fois et que tu peux détruire ensuite. Bien sûr, tu mets les bons numéros de diapos à la place du 3 et du 4:

Sub truc()
ActivePresentation.Slides(3).Name = "lundi"
ActivePresentation.Slides(4).Name = "vendredi"
End Sub


Pour la macro événementielle, il faudra maintenant qu'elle se lance dès la première diapo. Donc, dès le début on affiche la diapo lundi si on est un lundi et la diapo vendredi si on est un vendredi. SInon, elles sont masquées.

Par défaut la diapo qui contient la zone de texte sera affichée au lancement du diaporama. Mais si le jour ne correspond pas à l'un de tes jours, elle sera masquée automatiquement.
Dans la macro, j'ai mis le numéro 2 pour cette diapo. Mets bien le bon numéro. Et tu peux également utiliser un nom comme pour les deux autres.

Sub OnSlideShowPageChange(ByVal diaporama As SlideShowWindow)
'macro écrite par m@rina
Dim jour As Date, montexte As String
If diaporama.View.CurrentShowPosition = 1 Then
ActivePresentation.Slides(2).SlideShowTransition.Hidden = msoFalse

If Weekday(Date, 2) = 1 Then
ActivePresentation.Slides("lundi").SlideShowTransition.Hidden = msoFalse
Else
ActivePresentation.Slides("lundi").SlideShowTransition.Hidden = msoCTrue
End If

If Weekday(Date, 2) = 5 Then
ActivePresentation.Slides("vendredi").SlideShowTransition.Hidden = msoFalse
Else
ActivePresentation.Slides("vendredi").SlideShowTransition.Hidden = msoCTrue
End If

jour = Date
Select Case jour
Case "24/12/2015"
montexte = "Reveillon de Noël"
Case "25/12/2015"
montexte = "Noël"
Case "3/01/2016"
montexte = "Sainte Geneviève"
Case Else
ActivePresentation.Slides(2).SlideShowTransition.Hidden = msoCTrue
End Select

ActivePresentation.Slides(2).Shapes("zone").TextFrame.TextRange.Text = montexte
End If
End Sub


m@rina
0
Merci mais en faite j'avais deux questions indépendantes.
Pour le lundi et vendredi c'est bon , le code ne premier correspond.

Mais pour celle qui affiche le message en fonction de la date du jour, je voudrais que cette diapo s'affiche uniquement en fonction des jours de l'année ou j'ai un anniversaire qui correspond (une des 40 dates rentrées dans le code)
0
m@rina Messages postés 21085 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 novembre 2024 11 355
22 déc. 2015 à 13:20
Bonjour,

Dans PowerPoint, il y a deux manières de lancer une macro :

- soit elle se lance en cours de diaporama, soit automatiquement soit en cliquant sur un objet

- soit on la lance en mode travail, et là c'est forcément manuel.

Qu'est ce que tu souhaites exactement ?

m@rina
0
Bonjour, merci de votre réponse mais en faite je veux qu'elle se lance automatiquement quand je passe en mode diaporama et ma question était quel code faut écrire pour que ça marche.

Mathieu
0