XL 2021 Application.speech.speak

  • Initiateur de la discussion Initiateur de la discussion Attila451
  • Date de début Date de début

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 !

Attila451

XLDnaute Occasionnel
Bonjour,
J'ai voulu intégrer un message vocal dans une macro mais le message est lu avec un accent "Amerloque" très prononcé alors qu'il est destiné à un public Français 🙂

Sub UseSpeech()
Application.Speech.Speak "Merci d'avance pour votre aide"
End Sub

Comment faire svp pour que le message soit un peu plus proche de Molière ?
Merci d'avance !
 
Salut,
le windows 10 il est en français ou en anglais ?
Sinon sous windows 10 , 11 il faut aller dans les paramètres et regarder les voix installées et celle choisie dans heure et langue - Voix :

voix.png


Nullosse.
 
essaie de passer par sapi.voice
VB:
Sub DireBonjourAvecHortense()
    Dim voix As Object
    Dim voixDisponible As Object
    Dim trouve As Boolean
    
    ' Créer l'objet SAPI.SpVoice
    Set voix = CreateObject("SAPI.SpVoice")
     voix.Volume = 100   'pour le volume de 0 à 100
    voix.Rate = 2      ' pour la vitesse d'élocution de -10 à 10
 
    ' Parcourir les voix disponibles pour chercher "Hortense"
    trouve = False
    For Each voixDisponible In voix.GetVoices
        If InStr(1, voixDisponible.GetDescription, "Hortense", vbTextCompare) > 0 Then
            Set voix.voice = voixDisponible
            trouve = True
            Exit For
        End If
    Next
    
    If trouve Then
        voix.Speak "Bonjour,;   ;je suis Hortense."
    Else
        MsgBox "La voix 'Hortense' n'est pas disponible sur ce système.", vbExclamation
    End If
End Sub
 
VB:
Option Explicit
'Tools > References and [x] Microsoft Speech Object Library.
Sub ExcelSpeak()
     Call Speak("Hi! How are you, today?", "female")
     Application.Wait Now() + TimeValue("0:0:01")
     Call Speak("Hi! Glad to see you!", "male")
End Sub


Sub Speak(say As String, Optional gender As String = "male")
     Dim Talk As Object, i As Single
     i = IIf(gender <> "male", 1, 0)
     Set Talk = CreateObject("SAPI.SpVoice")
     Talk.Volume = 100
     Set Talk.Voice = Talk.GetVoices().Item(i)
     Talk.Speak say
End Sub
 
essaie de passer par sapi.voice
VB:
Sub DireBonjourAvecHortense()
    Dim voix As Object
    Dim voixDisponible As Object
    Dim trouve As Boolean
    
    ' Créer l'objet SAPI.SpVoice
    Set voix = CreateObject("SAPI.SpVoice")
     voix.Volume = 100   'pour le volume de 0 à 100
    voix.Rate = 2      ' pour la vitesse d'élocution de -10 à 10
 
    ' Parcourir les voix disponibles pour chercher "Hortense"
    trouve = False
    For Each voixDisponible In voix.GetVoices
        If InStr(1, voixDisponible.GetDescription, "Hortense", vbTextCompare) > 0 Then
            Set voix.voice = voixDisponible
            trouve = True
            Exit For
        End If
    Next
    
    If trouve Then
        voix.Speak "Bonjour,;   ;je suis Hortense."
    Else
        MsgBox "La voix 'Hortense' n'est pas disponible sur ce système.", vbExclamation
    End If
End Sub
 
VB:
Option Explicit
'Tools > References and [x] Microsoft Speech Object Library.
Sub ExcelSpeak()
     Call Speak("Hi! How are you, today?", "female")
     Application.Wait Now() + TimeValue("0:0:01")
     Call Speak("Hi! Glad to see you!", "male")
End Sub


Sub Speak(say As String, Optional gender As String = "male")
     Dim Talk As Object, i As Single
     i = IIf(gender <> "male", 1, 0)
     Set Talk = CreateObject("SAPI.SpVoice")
     Talk.Volume = 100
     Set Talk.Voice = Talk.GetVoices().Item(i)
     Talk.Speak say
End Sub

Bonjour, merci pour l'aide mais la macro plante: la méthode Item de l'objet IspeechObjectTokens a échoué...
 
essaie de passer par sapi.voice
VB:
Sub DireBonjourAvecHortense()
    Dim voix As Object
    Dim voixDisponible As Object
    Dim trouve As Boolean
    
    ' Créer l'objet SAPI.SpVoice
    Set voix = CreateObject("SAPI.SpVoice")
     voix.Volume = 100   'pour le volume de 0 à 100
    voix.Rate = 2      ' pour la vitesse d'élocution de -10 à 10
 
    ' Parcourir les voix disponibles pour chercher "Hortense"
    trouve = False
    For Each voixDisponible In voix.GetVoices
        If InStr(1, voixDisponible.GetDescription, "Hortense", vbTextCompare) > 0 Then
            Set voix.voice = voixDisponible
            trouve = True
            Exit For
        End If
    Next
    
    If trouve Then
        voix.Speak "Bonjour,;   ;je suis Hortense."
    Else
        MsgBox "La voix 'Hortense' n'est pas disponible sur ce système.", vbExclamation
    End If
End Sub
Bonjour, merci pour le coup de main, apparemment pas d'Hortense disponible 🙁
Cdlt
 
- 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

Réponses
14
Affichages
206
Réponses
5
Affichages
557
Réponses
4
Affichages
183
Retour