IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Faire défiler un texte dans une zone de texte (version VBA)


Sujet :

Contribuez

  1. #1
    Invité
    Invité(e)
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    J'ai vu votre code qui m'intéresse beaucoup car je dois faire quelque chose de semblable mais avec une liste de mots (dans une colonne) dans excel, je dois les faire défiler dans une zone de texte dans un userform et je ne sais pas comment adapter votre code à ce contexte là est-il adaptable?
    merci d'avance pour la réponse.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ce code est propre à PPT car il utilise des objets qui lui appartiennent, il faudrait poser ta question sur la partie VBA du forum Excel en détaillant ce que tu veux.

    Philippe

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/10/2013, 14h38
  2. [AC-2007] Alimentation d'une zone de texte avec une zone de texte déroulante
    Par BRUNO71 dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/12/2010, 19h54
  3. Réponses: 13
    Dernier message: 07/08/2006, 10h13
  4. Réponses: 6
    Dernier message: 15/03/2006, 14h35
  5. incrementation d'un format texte dans une zone de texte
    Par frederic.go dans le forum Access
    Réponses: 6
    Dernier message: 18/10/2005, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo