Bonjour,

Je travail souvent des de PPT traduit (Anglais->Français/Français->Anglais).
Je suis débutant et ne maitrise pas trop le VBA.
J'aimerai trouver une macro me permettant de sectionner la langue de vérification sachant qu'il y a beaucoup de zone de texte ajouté (obligeant une modification une à une de ces zones).
En navigant sur le net j'ai pu trouvé le VBA ci-dessous que je n'arrive pas à exploiter.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Private Sub CommandButton1_Click()
On Error Resume Next
 
 
' Declare variables.
Dim sld As Slide
Dim shp As Shape
Dim colShapes As New Collection
Dim p As TextRange
Dim r As TextRange
Dim langue
 
If Me.OptionButton1 = True Then
langue = msoLanguageIDFrench
langue_id = 1036
l = "française"
ElseIf Me.OptionButton2 = True Then
langue = msoLanguageIDEnglishUS
langue_id = 1033
l = "anglaise"
ElseIf Me.OptionButton3 = True Then
langue = msoLanguageIDSpanish
langue_id = 3082
l = "espagnole"
Else
End If
 
 
' fait une boucle sur toutes les diapos de la presentation.
For Each sld In ActivePresentation.Slides
' fait une boucle sur toutes les formes de chaque diapo pour
For Each shp In sld.Shapes
colShapes.Add shp
CheckGroups shp, colShapes
Next
For Each shp In sld.NotesPage.Shapes
colShapes.Add shp
Next
Next
For Each shp In ActivePresentation.SlideMaster.Shapes
colShapes.Add shp
Next
For Each shp In ActivePresentation.TitleMaster.Shapes
colShapes.Add shp
Next
For Each shp In ActivePresentation.NotesMaster.Shapes
colShapes.Add shp
Next
For Each shp In colShapes
If shp.TextFrame.TextRange.LanguageID = 1031 Then
Debug.Print shp.Name
End If
shp.TextFrame.TextRange.LanguageID = langue
Next
MsgBox "Terminé ! la langue active est la langue " & l
ActivePresentation.DefaultLanguageID = langue
Unload Me
End Sub
Sub CheckGroups(shp As Shape, colShapes As Collection)
On Error Resume Next
If shp.GroupItems.Count > 0 Then
For Each g In shp.GroupItems
colShapes.Add g
Next
End If
End Sub
Merci de votre aide.