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

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 !
 

Modeste geedee

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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

  • This is the end(1).xlsm
    67.5 KB · Affichages: 50
Dernière édition:

Si...

XLDnaute Barbatruc
Salut

Pour le fun (plus simpliste mais plus sympa pour Moi :confused:) 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

  • FArtifice.xlsm
    113.2 KB · Affichages: 58

job75

XLDnaute Barbatruc
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

  • This is the end(2).xlsm
    68.2 KB · Affichages: 48

Modeste geedee

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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

  • This is the end(3).xlsm
    68.8 KB · Affichages: 49
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 481
Membres
103 232
dernier inscrit
logan035