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

Macros et VBA Excel Discussion :

Application.Speech.Speak _code VBA pour changer la langue [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 19
    Par défaut Application.Speech.Speak _code VBA pour changer la langue
    Bonjour,

    J'ai créé une application Excel pour réviser mes mots en anglais (sans lecture vocale des mots). En ce moment, je lis un livre sur VBA Excel et j'ai appris existence de l'application Speech.
    J'ai décidé d'améliorer mon application et d'y associer la lecture vocale. Le soucis (car il y en toujours un) c'est que le pc me lit le mot anglais en français.

    Ce que je veux :

    Que le mot anglais affiché dans la textbox soit lu en anglais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox_English_Change()
     
        If TextBox_English.Text <> "" Then
     
            Application.Speech.Speak (TextBox_English.Text)
     
        End If
     
    End Sub
    autres informations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox (Application.LanguageSettings.LanguageID(msoLanguageIDUI))
    résultat : 1036 (Français)



    Avancement de mes recherches :

    Sur WINDOW 8.1, Faire une recherche sur le PC avec le mot clé "Synthèse vocale"
    Cliquer sur "Synthèse vocale"
    Dans sélection de voix, choisir "Microsoft Hazel Desktop-English"
    Cliquer sur Ok

    De cette manière, le code Private Sub TextBox_English_Change() fonctionne.

    Maintenant, que je sais faire cette tâche manuellement, comment transformer cela en VBA dans ma procédure, en sachant que l'idéal serait de revenir à l'état de la voix française en fin de procédure ?

    Je continue à chercher mais si vous avez une solution ^^, je suis preneur

    Nom : Image propriété synthèse vocale.png
Affichages : 3998
Taille : 75,2 Ko

    Merci d'avance

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 552
    Par défaut
    Bonjour

    Regarde le fil sur le même sujet http://www.developpez.net/forums/d14...projet-64-bit/ qui vient de remonter à la surface.

    Prendre une vois anglo saxone suffit il me semble à lire correctement l'anglais.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 19
    Par défaut Solution
    Bonjour,

    Merci pour l'orientation que tu as donné à mes recherches. J'ai consulté le lien que tu m'as transmis ainsi qu'un autre lien trouvé dans les discussions. Je n'ai pas tout compris dans leurs discussions, mis à part qu'il y a souvent des problèmes de compatibilité des voix avec le système de l'ordinateur (x64 windows 8.1 dans mon cas).

    Lien 1 : http://www.developpez.net/forums/d14...projet-64-bit/
    Lien 2 : http://www.developpez.net/forums/d14...-francais-vba/

    Voilà ma solution pour lire de l'anglais dans une texbox (si texbox non vide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     If TextBox_English.Text <> "" Then
     
                'Application.Speech.Speak (TextBox_English.Text)
     
            CreateObject("SAPI.SpVoice").Voice.Category.Default = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_en-GB_Hazel_11.0"
            Application.Speech.Speak (TextBox_English.Text)
     
            End If
    Voilà ma solution pour lire du français dans une texbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            CreateObject("SAPI.SpVoice").Voice.Category.Default = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_fr-FR_Hortense_11.0"
            Application.Speech.Speak (TextBox_Français.Text)
    La seule différence se situe ici : "TTS_MS_fr-FR_Hortense_11.0", il faut juste changer l'acronyme "fr-FR" et le nom de la voix "Hortense", j'ai trouvé ces infos dans le lien ci-dessous

    Liste des voix window 8 et 8.1 : https://msdn.microsoft.com/en-us/lib...zer.voice.aspx


    Je ne sais pas si il y a mieux comme code mais dans mon cas cela me convient Je peux créer une alternance de prononciation anglais français avec du code

    Merci encore pour l'aide, ce n'est pas toujours facile de trouver la bonne information quand il vous manque de vocabulaire vba pour faire des recherches ciblés !!

  4. #4
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Par défaut Macro avec Speech
    Bonjour baryum

    Votre macro pour réviser une langue a l'air très bien faite.
    Est-il possible d'avoir une copie du fichiers avec ses macros( sans données personnelles)?

    Merci
    Geoffroy

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 552
    Par défaut
    Bonjour

    Comme tu peux le voir en consultant son profil, baryum n'est pas revenu ici depuis 2015... et il est probable aussi que les choses ont un peu évolué depuis

  6. #6
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 019
    Par défaut
    Bonjour.
    Pour information, avec Windows 10 et Excel 2010 (ou 2016) il est possible de faire parler le PC en anglais par le VBA :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    '------------------------------------------------------------------------------------------------
    Public Sub Speak(StrTexte As String)
    '------------------------------------------------------------------------------------------------
    Static Voice As Object
    If Voice Is Nothing Then Set Voice = CreateObject("SAPI.Spvoice")
    Voice.Speak StrTexte
    If StrTexte = "" Then Set Voice = Nothing
    End Sub
    '------------------------------------------------------------------------------------------------

    Exemple : call Speak("hello")

    Ne pas oublier de mettre le son via le mixer de volume (ou mélangeur de volume) :


    Nom : Capture.JPG
Affichages : 1151
Taille : 35,3 Ko

    Cordialement.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Par défaut Changer la langue speech
    Bonjour
    Merci pour vos réponses

    A+
    Geoffroy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 1004 Application.Speech.speak
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 14h58
  2. [AC-2003] Petite fonction pour changer la langue d'un contrôle
    Par Dermochelys dans le forum Contribuez
    Réponses: 0
    Dernier message: 07/06/2011, 12h24
  3. code vba pour changer propriéte?
    Par billcoyotte dans le forum IHM
    Réponses: 9
    Dernier message: 10/07/2009, 08h04
  4. Fonction pour changer la langue du clavier
    Par aliwatte dans le forum Windows
    Réponses: 0
    Dernier message: 14/02/2009, 14h26
  5. [HTML] quelle est la meilleure méthode pour changer la langue d'un site?
    Par poupouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2008, 12h17

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