Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 ) 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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…