VBA - modifier la vitesse d'apparition d'un message

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

brouersa

XLDnaute Nouveau
Bonjour à tou(te)s,

J'ai modifié un fichier afin de faire apparaître un message lors d'un "feu d'artifice" dans Excel.
Je souhaiterais que le texte apparaisse plus lentement et éventuellement parcellé ...
Comment puis-je faire ?

Evitez de me dire d'utiliser Powerpoint pour le faire car je donne une formation Excel et je voudrais pouvoir finir sur cette touche "originale" au sein d'un classeur Excel 🙂

Merci d'avance pour votre aide !
 
Bonsour®
Bonjour à tou(te)s,

J'ai modifié un fichier afin de faire apparaître un message lors d'un "feu d'artifice" dans Excel.
Je souhaiterais que le texte apparaisse plus lentement et éventuellement parcellé ...
Comment puis-je faire ?
😉
une possibilité :
VB:
Sub showMessage()
    With ActiveSheet.Shapes("txtWishes")
                .Visible = msoTrue
                For i = 1 To 100
                .Height = 3 * i
                DoEvents
                Next
    End With
    Application.Speech.Speak "Merci à tou(te)s ! Bon amusement avec Excel dans vos études et dans votre future vie professionnelle !!!"
End Sub
 
Bonjour brouersa, mapomme, Modeste geedee,

Par exemple :
Code:
Sub showMessage()
    Dim pas, t$, i%
    pas = 0.07 'seconde
    t = "Merci à tou(te)s !" & vbLf & "Bon amusement avec Excel dans vos" & vbLf & "études et dans votre future vie" & vbLf & "professionnelle !!!"
    With ActiveSheet.DrawingObjects("txtWishes")
      .Text = ""
      .Visible = msoTrue
      For i = 1 To Len(t)
        .Text = Left(t, i)
        If Mid(t, i, 1) <> " " Then Application.Wait [Now()] + pas / 86400
      Next
    End With
End Sub
On met le pas qu'on veut...

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Salut

Pour le fun (plus simpliste mais plus sympa pour Moi 😕) un clic sur l’image* et on regarde !

*Remarque : image reconstituée car gros problème avec celle fournie et ma version d’Excel.

@Modestegeedee : pour le son, en copiant ta ligne, j’ai une drôle de voix qui semble féminine mais peu distincte. J'ai déjà eu cela avec tes productions précédentes 🙁.

@Job : j’avais pensé à dérouler le message mais je me suis heurté au tempo déjà utilisé donc présentation moins sympa que la tienne😉.
 

Pièces jointes

Re, salut Si...

Ceci me paraît mieux :
Code:
Sub showMessage()
    Dim pas, t$, i%
    pas = 0.03 'seconde
    t = String(20, "   ") & "Merci à tou(te)s !" & vbLf & _
      String(5, " ") & "Bon amusement avec Excel dans vos" & vbLf & _
        String(10, " ") & "études et dans votre future vie" & vbLf & _
          String(20, " ") & "professionnelle !!!"
    With ActiveSheet.DrawingObjects("txtWishes")
      .Text = ""
      .Visible = msoTrue
      For i = 1 To Len(t)
        .Text = Left(t, i)
        If Mid(t, i, 1) <> " " Then Application.Wait [Now()] + pas / 86400
      Next
    End With
End Sub
Le texte dans la Shape est aligné à gauche.

Fichier (2).

Bonne fin de soirée.
 

Pièces jointes

pour le son, en copiant ta ligne, j’ai une drôle de voix qui semble féminine mais peu distincte. J'ai déjà eu cela avec tes productions précédentes 🙁.
🙁 l'instruction: Application.Speech.Speak (Text)
utilise la voix (US) par défaut installée avec Windows...
Il te faut aller dans le panneau de configuration Windows et choisir une voix francophone
upload_2016-12-3_22-48-20.png

il te faudra éventuellement en installer une ...
voir les différents fils à ce sujet déjà évoqués dans le forums
 
Bonjour à tou(te)s,

Chez moi (Win 10 - Excel 2013) le speech est parfait avec ceci :
Code:
Sub showMessage()
    Dim pas, t$, i%
    pas = 0.001 'seconde
    t = String(20, "   ") & "Merci à tou(te)s !" & vbLf & _
      String(5, " ") & "Bon amusement avec Excel dans vos" & vbLf & _
        String(10, " ") & "études et dans votre future vie" & vbLf & _
          String(20, " ") & "professionnelle !!!"
    With ActiveSheet.DrawingObjects("txtWishes")
      .Text = ""
      .Visible = msoTrue
      For i = 1 To Len(t)
        .Text = Left(t, i)
        If Mid(t, i, 1) <> " " Then Application.Wait [Now()] + pas / 86400
      Next
    End With
    Application.Speech.Speak Replace(Replace(Replace(t, "(te)", "s et à toute"), vbLf, " "), "Bon a", "Bona")
End Sub
J'impose même à la voix (féminine) de faire la liaison sur "Bon amusement".

Fichier (3).

Nota : dans mon panneau de configuration je n'ai rien trouvé concernant la synthèse vocale.

Edit : OK j'ai trouvé en utilisant le moteur de recherche du panneau de configuration.

Bon dimanche.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour