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.
Merci de votre aide.
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
Partager