Bonjour à tous,
J'espère avoir posté ma demande dans la bonne rubrique.
Je suis formateur et dans ce cadre nous faisons des supports de cours dédiés en powerpoint.
j'ai crée, il y a quelques années, un programme VBA qui permet de générer des présentations powerpoint depuis excel : (ajouts des diapos suivant une liste, création de sommaire, de chapitre...)
Avec ce programme, la création d'une présentation de 300 pages se fait en 5 minutes aux lieux de 4 h à la main auparavant (les secrétaires m'ont remercié :-) )
Le programme fonctionnait très bien sous office 2011 pour mac, depuis l'achat de nouvelles machines Mac (high sierra 10.13), nous avons été forcés de changer de version office : 365 actuellement.
Le programme VBA ne fonctionne plus !!!
Par différentes recherches, j'ai pu gérer les problèmes d'autorisations d'accès de la gestion "sandbox" du Mac ainsi que les chemins d'accès des fichiers qui ont changé de format (merci aux sites de Ron de Bruin).
Depuis excel 365, je peux ouvrir des présentations mais je n'ai plus accès aux objets de powerpoint (slides, textbox...), et cela alors que les références des librairies soient bien cochées.
Avec des variables espions, je vois que tout est vide (aucune variable).
Le même code sous powerpoint 365 ne génère pas de dysfonctionnement et j'ai bien accès aux objet des présentations.
Je soupçonne qu'excel n'a pas les autorisations du Mac pour accéder aux librairies de powerpoint ?
Quelqu'un a t'il eu le problème ? et comment le résoudre ?
Pour info, voici un bout de code qui fonctionne sous powerpoint 365 mais pas sous excel 365
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 Sub piloterPowerPoint() Dim CheminFichier(0) As String Dim Nbslide As Integer CheminFichier(0) = "/Users/portablesebastien/desktop/Trans PP 2011/modèles/Titre.pptx" Dim fileAccessGranted As Boolean Dim filePermissionCandidates filePermissionCandidates = CheminFichier fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates) Dim Ppa As PowerPoint.Application Set Ppa = New PowerPoint.Application Dim Ppp1 As PowerPoint.Presentation Set Ppp1 = Ppa.Presentations.Open(FileName:=CheminFichier(0)) Nbslide = Ppp1.Slides.Count Dim Sld As Slide Set Sld = Ppp1.Slides(1) Sld.Copy Ppp1.Slides.Paste 2 End Sub
Partager