Faire défiler un texte dans une zone de texte (version VBA)
Bonjour
Je vous présente un petit code qui permet de faire défiler un texte dans une zone de texte.
Création :
Pour l'exemple que vous allez trouver en pièce jointe, nous créons deux diapositives.
1 ère Diapositive :
- Nous mettons juste une forme avec le texte "Lancer l'affichage du texte déroulant".
2 ème Diapositive :
- Nous mettons une zone de texte, où nous saisissons le texte que nous voulons voir défiler (ici :" Le texte qui défile dans la zone de texte"), c'est uniquement pour régler la taille de la zone de manière à n'avoir qu'une ligne.
- Nous mettons juste une forme avec le texte "Fin du défilement".
Ensuite nous créons un module dans l'éditeur VB où nous positionnons le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| '=======================================================================================
' Procedure : Module1
' Auteur : Philippe JOCHMANS - http://starec.developpez.com
' Date : 22/07/2008
' Commentaires : Faire défiler une texte dans une zone de texte
'=======================================================================================
Option Explicit
' déclaration des variables
' API pour la temporisation
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public i As Integer 'cette variable va permettre de faire un test pour arrêter le défilement
Public Sub DefilerTexte()
'=======================================================================================
' Procedure : DefilerTexte
' Auteur : Philippe JOCHMANS - http://starec.developpez.com
' Date : 22/07/2008
' Commentaires : Nous allons retrouver ici la procédure de défilement du texte
'=======================================================================================
' déclaration des variables
Dim sld As slide ' diapositive où se trouve la zone de texte
Dim shpTexte As Shape ' l'objet Shape qui correspond à la zone de texte
Dim strTexte As String ' le texte qui sera mit dans la zone
ActivePresentation.SlideShowWindow.View.GotoSlide 2
DoEvents
' affectation
Set sld = ActivePresentation.Slides(2)
Set shpTexte = sld.Shapes("LaZone")
strTexte = " Le texte qui défile dans la zone de texte"
shpTexte.TextFrame.TextRange.Text = strTexte
i = 1
' boucle pour gérer le défilement jusqu'à ce que l'on change la valeur
Do While i < 2
shpTexte.TextFrame.TextRange.Text = Mid(shpTexte.TextFrame.TextRange.Text, 2) & Left(shpTexte.TextFrame.TextRange.Text, 1)
DoEvents
Sleep 200
Loop
End Sub
Public Sub Passage()
' initialisation de la variable public pour permettre l'arrêt de la boucle
i = 2
DoEvents
' fin du diaporama
Application.Quit
End Sub |
Ensuite nous allons affecter les évènements sur le clique des formes.
Effectuez un clique droit sur les formes pour sélectionner "Paramètres des Actions" (bouton Action pour PPT 2007), sélectionner les macros suivantes :
La macro DefilerTexte pour la forme de la première diapo.
La macro Passage pour la forme de la deuxième diapo.
Vous n'avez plus qu'à lancer votre diaporama et à cliquer sur les boutons successifs.
Téléchargement
Starec