XL 2010 VBA pour powerpoint

  • Initiateur de la discussion Initiateur de la discussion desatan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

desatan

XLDnaute Occasionnel
Bonjour à tous,

J'ai 6 ou 7 fichiers powerpoint avec des tableaux et des graphiques en liens avec des fichiers Excel.

J'aimerai une macro ou VBA qui me copierait tous mes fichiers powerpoint dans un seul en supprimant tous les liens.

Quelqu'un peut il m'aider ?

Merci par avance.
 
Bonjour
qu'appelles tu exécution en pas à pas ?
Merci par avance
Tu vas dans l'éditeur, tu cliques dans le code et tu appuies sur F8 : à chaque appui sur F8, le code exécute une ligne.

De plus si tu affiches la fenêtre des variables locales et la fenêtre espion, tu peux vérifier les valeurs prises par ces variables.

Cela permet de voir si le code se déroule normalement.

Si je reprends ton post #9, où tu dis que cela plante sur l'ouverture "Presentations.Open chemin & PPTfile" cela parait bizarre car à ce stade il a bien trouvé un fichier pptx dans le dossier chemin : quel est le nom attribué à PPTfile ?
Un plantage sur ouverture d'un fichier dont le chemin et le nom existent est généralement lié à un fichier déjà ouvert mais pour vérifier il faut suivre les étapes du code...
 
Rien ne s'affiche dans la fenêtre espion.
Dans la fenêtre variables locales,
Le chemin est bon, le nomCompilation semble bon.
Par contre je ne reconnais pas la valeur de PPTfile, le nom de fichier n'est pas dans le répertoire ?

Quand j'ai copié ton code, j'ai juste modifié ceci :
chemin =
NomCompilation = chemin &

Y'avait il autre chose à modifier ?


Merci par avance
 
Bonjour

Chemin doit être renseigné avec le chemin complet du dossier que tu traites sans oublier le \ final
NomComplilation doit être renseigné avec le nom du fichier où seront mis bout à bout les présentations traitées

PPTfile renvoie au début le nom du 1er fichier de type .pptx trouvé dans le dossier chemin
 
OK merci, j'avais oublié le \ final :-(

La macro se lance et crée un document pptx.

Mais la somme de tous les pptx du répertoire devrait faire un document de 179 pages, avec la macro, le document ne fait que 27 pages ?

De plus, avec la macro, je perds tous les formats des diapos d’origine ?

Encore merci pour ton aide
 
Dernière édition:
Re

La macro ouvre un document et copie les autre à la suite. La ligne qui devrait sauvegarder ce document sous un nouveau nom a été mise en commentaire (je l'avais expliqué lorsque j'ai posté le code) : il reste donc à le sauvegarder.

Concernant les formats : quand on travaille correctement avec Powerpoint on utilise des masques qui préside à la mise en forme. Par défaut quand on copie/colle les diapos collées s'adapte au masque de destination afin de garantir l'homogénéité de la présentation.

Manuellement on peut préciser une option pour conserver la mise en forme source mais cela a pour conséquence de démultiplier le nombre de masques et de rendre la présentation difficilement gérable.
Pour l'instant je n'ai pas trouvé d'équivalent en VBA.

Concernant le nombre de dias, vérifie en pas à pas quel fichier est ouvert et la valeur de Z qui correspond au nombre de dias du fichier, recalculé à l'ouverture de chaque fichier...
x donne le nombre de fichiers ouverts au fil du temps d’exécution.
Fais le test avec un nombre de fichiers réduit pour commencer...
 
Re

Tu ne fais pas beaucoup d'efforts !

Comme déjà dit au #16 il faut appuyer sur F8 pour chaque ligne.

La moindre des choses quand on veut faire du VBA, même si on demande au forum de faire le code, c'est de faire l'effort de regarder un tutoriel sur le mode débug : exécution pas à pas, points d'arrêt, utilisation de la fenêtre espion.

Tu ne donnes aucun fichier, juste tes desiderata... pas très forum attitude...

Dans le code il y a effectivement une erreur car on copie la 1ère et la dernière dia et non de la 1ère à la dernière : il faut remplacer la ligne
Code:
ActivePresentation.Slides.Range(Array(1, Z)).Copy
par
Code:
ActivePresentation.Slides.Range.Copy
 
Bonjour Chris,

Ca n'en a peut être pas l'air mais si j'essaye de te suivre.
Pour le pas à pas et F8, j'avais compris, c'est même cette méthode qui m'a permis de te dire ceci :
La valeur Z dans la fenêtre variable reste à 0, la valeur X passe à 1.

Je ne peux pas donner mes fichiers, ce sont des données confidentielles, j'en suis désolé.

Après la modification, quand je lance la macro, un pptx se crée bien mais il veut ouvrir tous les fichiers Excel en lien, ce qui pose problème, comment faire pour pas que les fichiers Excel s'ouvre ? Il faudrait dire à la macro de ne pas procéder à l'actualisation au moment de l'ouverture des pptx ?
 
Bonjour

Je n'ai pas ce problème...

Chaque pptx s'ouvre sans me demander d'ouvrir les fichiers liés et le code supprime les liens sous réserve que cela résulte bien de copier/coller avec liaison (ou insertion d'objet lié) à partir de fichier xlsx.
Pas xls, et les autres types de lien ne sont pas supprimés.

Quand au mode débug il faut surveiller la valeur des variables au fur et à mesure de l'exécution :
Z change forcément lorsque la ligne Z = ActivePresentation.Slides.Count est exécutée et ceci pour chaque pptx ouvert
X change forcément à chaque nouveau pptx ouvert

Le seul moyen que tu as de contrôler ce qui ne va pas chez toi c'est d'exécuter en pas à pas (F8 autant de fois que nécessaire) sur au moins 2 pptx, dont tu connais le nombre de liens afin de vérifier si la partie qui supprime les liens les trouve bien tous.
Tu peux aussi ajouter des contrôles dans la fenêtre espion pour vérifier quel objet est manipulé lors de la suppression du lien et ainsi voir ce qui est ou non traité.

Su mon PC et mes fichiers, le code tourne.
N'ayant aucun vision sur les tiens, il n'y a que toi qui puisse voir où se situe le problème....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
430
Réponses
10
Affichages
541
  • Question Question
Microsoft 365 Liens hypertexte
Réponses
4
Affichages
323
Réponses
1
Affichages
120
Retour