2012-06-04 10:01:31 +0000 2012-06-04 10:01:31 +0000
166
166

Comment puis-je changer la langue de toutes les diapositives Powerpoint en une seule fois ?

Je veux changer la langue d'épreuvage de toutes mes diapositives dans un Powerpoint. J'ai essayé de régler la langue via le menu Préférences de langue, mais cela ne change que pour les nouveaux Powerpoint.

Réponses (8)

178
178
178
2013-03-17 17:29:41 +0000

Pour changer facilement la langue du entier PowerPoint, ouvrez l'onglet View et sélectionnez la vue Outline.

Appuyez maintenant sur

  • Ctrl+A pour tout sélectionner.
  • ToolsLanguage → Choisissez votre langue pour définir.

De même, lorsque vous avez tout sélectionné, vous pouvez changer d'autres choses comme les polices, les couleurs, etc. Bien que, dans de nombreux cas, il soit préférable de changer le diaporama, une présentation qui a eu de nombreux rédacteurs peut avoir beaucoup de formatage “dur” qui s'écarte du master sous-jacent et doit être réinitialisé pour être cohérent. Vous pouvez également réinitialiser les diapositives individuelles dans le style du master, mais cela peut entraîner le déplacement des caractères de remplacement, ce qui peut être indésirable dans certaines situations.

PowerPoint 2013

  • ViewOutline → sélectionnez toutes les diapositives (dans un menu de gauche) via Ctrl+A.
  • ReviewLanguageSet Proofing Language… → Choisissez votre langue à régler.

Quant à moi - PowerPoint restart était nécessaire. Probablement parce que j'ai aussi changé Language Editing :

  • ReviewLanguageSet Proofing Language…Language PreferencesChoisissez les langues d'édition.
34
34
34
2012-06-04 10:01:32 +0000

En utilisant Powerpoint 2010, j'ai ouvert le menu Grandes lignes -

Sélectionné tout le texte (Ctrl+A), ouvert le menu Langue et réglé ma langue d'épreuvage

Et ça a marché !

Le menu Langue se trouve sur l'onglet Ruban de révision (après l'onglet Diaporama et non visible sur la capture d'écran).

24
24
24
2013-08-09 08:11:56 +0000

Les réponses existantes fonctionnent pour le texte qui est présent dans le schéma. Malheureusement, dans mon cas, cela ne couvrait pas une partie importante du texte, y compris les figures, les tableaux, etc.

Cette macro a résolu le problème pour moi :

Sub ChangeProofingLanguageToEnglish()
    Dim j, k, m, scount, fcount, gcount As Integer
    scount = ActivePresentation.Slides.Count
    For j = 1 To scount
        fcount = ActivePresentation.Slides(j).Shapes.Count
        For k = 1 To fcount
            If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
                ActivePresentation.Slides(j).Shapes(k) _
                .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
            If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then
                gcount = ActivePresentation.Slides(j).Shapes(k).GroupItems.Count
                For m = 1 To gcount
                    If ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
                Next m
            End If
        Next k
    Next j
End Sub

La “msoLanguageIDEnglishUS” qui est utilisée dans la macro ci-dessus peut être remplacée par n'importe quelle langue souhaitée. La liste complète des langues peut être trouvée dans cet article

(Le mérite revient à Ganesh Kumar qui a publié la macro originale ici . J'ai ajouté un support pour le premier niveau de regroupement des formes. Pour l'améliorer encore, la macro peut être rendue récursive pour rechercher des groupes qui contiennent d'autres groupes, etc.)

22
22
22
2013-11-25 09:52:03 +0000

J'ai amélioré la réponse de Inigo pour fournir une version récursive qui change tous les éléments dans la langue souhaitée.

Cette version permet d'étudier récursivement chaque forme qui est un type de groupe. Certaines expérimentations suggèrent que msoGroup et msoSmartArt sont les types de groupes - n'hésitez pas à ajouter à cette liste si vous trouvez d'autres types de formes pouvant contenir des objets de texte.

Sub ChangeProofingLanguageToEnglish()
    Dim j As Long, k As Long
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDEnglishUK

    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), _
              languageID
        Next k
    Next j
End Sub

Sub ChangeAllSubShapes(targetShape As shape, languageID As MsoLanguageID)
    Dim i As Long

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub
10
10
10
2016-07-09 09:41:22 +0000

Basé sur les réponses d'Inigo, Duncan, Maria et DomDev, ce travail concerne les formes, les tableaux, les groupes, le SmartArt, maintenant et dans le futur :

Sub ChangeProofingLanguageToFrench()
    Dim j, k As Integer
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDFrench

    'Loop all the slides in the document, and change the language
    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), languageID
        Next k
    Next j

    'Loop all the master slides, and change the language
    For j = 1 To ActivePresentation.SlideMaster.CustomLayouts.Count
        For k = 1 To ActivePresentation.SlideMaster.CustomLayouts(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.SlideMaster.CustomLayouts(j).Shapes(k), languageID
        Next k
    Next j

    'Change the default presentation language, so that all new slides respect the new language
    ActivePresentation.DefaultLanguageID = languageID
End Sub

Sub ChangeAllSubShapes(targetShape As Shape, languageID As MsoLanguageID)
    Dim i As Integer, r As Integer, c As Integer

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    If targetShape.HasTable Then
        For r = 1 To targetShape.Table.Rows.Count
            For c = 1 To targetShape.Table.Columns.Count
                targetShape.Table.Cell(r, c).Shape.TextFrame.TextRange.languageID = languageID
            Next
        Next
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub
7
7
7
2014-05-22 13:36:52 +0000

La version de Duncan fonctionne bien pour tout sauf les tableaux. J'ai trouvé un autre code qui semble également fonctionner avec les tables : https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text

Public Sub changeLanguage()
On Error Resume Next
Dim gi As GroupShapes '<-this was added. used below
'lang = "English"
lang = "Norwegian"
'Determine language selected
If lang = "English" Then
lang = msoLanguageIDEnglishUK
ElseIf lang = "Norwegian" Then
lang = msoLanguageIDNorwegianBokmol
End If
'Set default language in application
ActivePresentation.DefaultLanguageID = lang

'Set language in each textbox in each slide
For Each oSlide In ActivePresentation.Slides
Dim oShape As Shape
For Each oShape In oSlide.Shapes
'Check first if it is a table
If oShape.HasTable Then
For r = 1 To oShape.Table.Rows.Count
For c = 1 To oShape.Table.Columns.Count
oShape.Table.Cell(r, c).Shape.TextFrame.TextRange.LanguageID = lang
Next
Next
Else
Set gi = oShape.GroupItems
'Check if it is a group of shapes
If Not gi Is Nothing Then
If oShape.GroupItems.Count > 0 Then
For i = 0 To oShape.GroupItems.Count - 1
oShape.GroupItems(i).TextFrame.TextRange.LanguageID = lang
Next
End If
'it's none of the above, it's just a simple shape, change the language ID
Else
oShape.TextFrame.TextRange.LanguageID = lang
End If
End If
Next
Next End Sub
6
6
6
2016-07-04 12:52:11 +0000

En plus de la réponse fournie par Mastergalen et pour répondre aux commentaires concernant le texte nouvellement tapé :

Si vous remarquez que la langue change automatiquement chaque fois que vous commencez à taper un nouveau texte (ce qui est très ennuyeux), vous devez changer la langue actuelle par défaut pour PowerPoint :

  • assurez-vous que la fenêtre de PowerPoint est une fenêtre active
  • dans le Windows Taskbar (oui, en fait pas dans PowerPoint), vérifiez si Language bar est visible,
  • sinon allez dans Control Panel > Region and Language > Keyboards and Languages. Cliquez sur Change keybords..., passez à l'onglet Language bar et cochez l'option Docked in the taskbar. (ceci vient de Win7, donc peut être un peu différent dans d'autres versions).
  • maintenant action clé - dans le Language bar dans la barre des tâches, cliquez sur le code langue et passez à EN (si vous voulez utiliser actuellement l'anglais dans PowerPoint). À partir de maintenant, tout nouveau texte dans PowerPoint sera dans la langue sélectionnée :-)
  • si vous voulez écrire dans votre langue d'origine, il suffit de la changer à nouveau.
3
3
3
2017-10-20 11:42:30 +0000

J'ai fait un add-in en 2014 pour moi-même qui fonctionne toujours bien dans PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1

Il scanne les langues utilisées et vous permet de changer en une seule fois, en boucle.