Macro VBA Powerpoint - Suppression de plusieurs slides
Fermé
Nani972
Messages postés
6
Date d'inscription
vendredi 28 novembre 2014
Statut
Membre
Dernière intervention
9 décembre 2014
-
28 nov. 2014 à 10:56
Nani972 Messages postés 6 Date d'inscription vendredi 28 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 9 déc. 2014 à 11:50
Nani972 Messages postés 6 Date d'inscription vendredi 28 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 9 déc. 2014 à 11:50
A voir également:
- Macro VBA Powerpoint - Suppression de plusieurs slides
- Visionneuse powerpoint - Télécharger - Présentation
- Erreur 1004 vba ✓ - Forum VB / VBA
- Macro logiciel - Télécharger - Organisation
- Forcer suppression fichier - Guide
- Suppression compte instagram - Guide
5 réponses
Zoul67
Messages postés
1956
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
28 nov. 2014 à 11:55
28 nov. 2014 à 11:55
Bonjour,
J'ai l'impression que c'est une macro Excel qu'il te faut, du coup.
Cherche "VBA piloter powerpoint depuis Excel", tu devrais trouver ton bonheur.
A+
J'ai l'impression que c'est une macro Excel qu'il te faut, du coup.
Cherche "VBA piloter powerpoint depuis Excel", tu devrais trouver ton bonheur.
A+
Nani972
Messages postés
6
Date d'inscription
vendredi 28 novembre 2014
Statut
Membre
Dernière intervention
9 décembre 2014
28 nov. 2014 à 12:10
28 nov. 2014 à 12:10
Bonjour,
J'ai cherché avec ce que vous m'avez donné, mais je ne trouve pas un code qui me permet de supprimer plusieurs slides, en disant "supprimer de la slide a à la slide r"...
J'ai cherché avec ce que vous m'avez donné, mais je ne trouve pas un code qui me permet de supprimer plusieurs slides, en disant "supprimer de la slide a à la slide r"...
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
28 nov. 2014 à 14:26
28 nov. 2014 à 14:26
Bonjour,
Voici un exemple à adapter:
Voici un exemple à adapter:
'Microsoft PowerPoint 11.0 Object Library
Sub TestPowerPoint()
' On déclare une variable de type Application PowerPoint
Dim ppt As PowerPoint.Application
Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
' On crée maintenant un objet Presentation
Dim Pres As PowerPoint.Presentation
' Et on lui dit de quelle présentation il s'agit :
Set Pres = ppt.Presentations.Open(Filename:="C:\chemin de la presentation")
' Et on supprime la deuxieme diapositive de la présentation :
Pres.Slides(2).Delete
'mettre tous les slides a supprimer a la suite
' On enregistre la présentation PowerPoint :
Pres.Save
' Et on quitte PowerPoint proprement :
ppt.Quit
Set ppt = Nothing
End Sub
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
28 nov. 2014 à 14:54
28 nov. 2014 à 14:54
Si tu as plusieurs slides qui se suivent tu peux faire une boucle comme ceci:
Dim i As Integer For i = 8 To 25 Pres.Slides(i).Delete Next
Nani972
Messages postés
6
Date d'inscription
vendredi 28 novembre 2014
Statut
Membre
Dernière intervention
9 décembre 2014
2 déc. 2014 à 11:27
2 déc. 2014 à 11:27
Sauf que les valeurs 8 et 25 de votre exemple peuvent être aléatoires.
C'est pour cela que j'ai une table de référence dans un fichier excel ou je peux modifier beaucoup facilement ces valeurs (sans avoir à les chercher dans tout le code).
J'ai déjà déclaré ses valeurs. Elles sont associées à des variables.
Seulement, j'ai essayé de le remplacer mais ça ne fonctionne pas.
La boucle For bloque.
C'est pour cela que j'ai une table de référence dans un fichier excel ou je peux modifier beaucoup facilement ces valeurs (sans avoir à les chercher dans tout le code).
J'ai déjà déclaré ses valeurs. Elles sont associées à des variables.
Seulement, j'ai essayé de le remplacer mais ça ne fonctionne pas.
For i = PositionPPTDestD1 To PositionPPTDestDn
pptTdB.Slides(i).Delete
Next
La boucle For bloque.
Zoul67
Messages postés
1956
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
2 déc. 2014 à 12:34
2 déc. 2014 à 12:34
Que sont PositionPPTDestD1 et PositionPPTDestDn ??
De plus, après avoir supprimé le premier slide, les autres slides risquent de se renuméroter...
De plus, après avoir supprimé le premier slide, les autres slides risquent de se renuméroter...
Nani972
Messages postés
6
Date d'inscription
vendredi 28 novembre 2014
Statut
Membre
Dernière intervention
9 décembre 2014
2 déc. 2014 à 13:21
2 déc. 2014 à 13:21
Ce sont des variables que j'ai déclaré, qui correspondent à des cellules dans mon fichier excel de référence.
PositionPPTDestD1= 1ère slide à supprimer
PositionPPTDestDn = Dernière slide à supprimer
j'ai un code qui permet de faire une selection de slides, mais je suis obligée d'énumérer toutes les slides à supprimer.
L'idéal, ça serait que je puisse faire cette selection, en disant "selectionner des slides a à z" & les supprimer.
PositionPPTDestD1= 1ère slide à supprimer
PositionPPTDestDn = Dernière slide à supprimer
j'ai un code qui permet de faire une selection de slides, mais je suis obligée d'énumérer toutes les slides à supprimer.
L'idéal, ça serait que je puisse faire cette selection, en disant "selectionner des slides a à z" & les supprimer.
Zoul67
Messages postés
1956
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
2 déc. 2014 à 14:38
2 déc. 2014 à 14:38
Peux-tu nous envoyer ton fichier Excel via https://www.cjoint.com/ ?
Avec un UserForm, c'est plus convivial que d'utiliser des cellules à mon avis.
Avec un UserForm, c'est plus convivial que d'utiliser des cellules à mon avis.
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
2 déc. 2014 à 14:09
2 déc. 2014 à 14:09
Il faut faire une boucle sur un tableau, comme ceci:
Il faudra déclarer tes variables en leur attribuant une valeur, en commençant par les plus hautes. Car comme l'a dit zoul7, les slides n'ont pas le même numéro si tu commences par le début. Tu changeras le MsgBox par Pres.Slides(i).Delete
Option Explicit
Option Base 0
Sub MonPremierTableau()
Dim toto, tata, titi, tutu, tonton As Integer
toto = 20
tata = 18
titi = 16
tutu = 14
tonton = 12
'Définit la taille du tableau et le type de données.
Dim NomTableau(4) As String 'a adapter
Dim i As Integer
'Alimente les éléments du tableau
NomTableau(0) = toto
NomTableau(1) = tata
NomTableau(2) = titi
NomTableau(3) = tutu
NomTableau(4) = tonton
'Boucle sur les éléments du tableau pour lire leur contenu
For i = 0 To 4 'a adapter
MsgBox NomTableau(i)
Next i
End Sub
Private Sub CommandButton1_Click()
MonPremierTableau
End Sub
Il faudra déclarer tes variables en leur attribuant une valeur, en commençant par les plus hautes. Car comme l'a dit zoul7, les slides n'ont pas le même numéro si tu commences par le début. Tu changeras le MsgBox par Pres.Slides(i).Delete
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zoul67
Messages postés
1956
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
3 déc. 2014 à 11:08
3 déc. 2014 à 11:08
Bonjour Mélanie,
Je n'en démords pas, je trouve plus logique d'avoir la macro dans le fichier Excel tableau de bord.
J'ai donc mis un bout de macro dans le fichier Excel, j'ai aussi corrigé ta macro PowerPoint si tu persistes dans ce sens.
NB : il ne faut pas oublier de cocher les bonnes références (MS Excel et Powerpoint) pour que l'interaction fonctionne.
Les fichiers : https://www.cjoint.com/?DLdlo4BBkkY
A+
Zoul67
Je n'en démords pas, je trouve plus logique d'avoir la macro dans le fichier Excel tableau de bord.
J'ai donc mis un bout de macro dans le fichier Excel, j'ai aussi corrigé ta macro PowerPoint si tu persistes dans ce sens.
NB : il ne faut pas oublier de cocher les bonnes références (MS Excel et Powerpoint) pour que l'interaction fonctionne.
Les fichiers : https://www.cjoint.com/?DLdlo4BBkkY
A+
Zoul67
Nani972
Messages postés
6
Date d'inscription
vendredi 28 novembre 2014
Statut
Membre
Dernière intervention
9 décembre 2014
9 déc. 2014 à 11:50
9 déc. 2014 à 11:50
Bonjour,
Merci beaucoup d'avoir pris le temps de regarder tout cela.
Je vais suivre votre conseil et positionner la macro directement dans le fichier Excel plutot que dans le fichier PPT.
Je teste le code que vous m'avez donné et je vous donnerais des nouvelles.
Merci :)
Merci beaucoup d'avoir pris le temps de regarder tout cela.
Je vais suivre votre conseil et positionner la macro directement dans le fichier Excel plutot que dans le fichier PPT.
Je teste le code que vous m'avez donné et je vous donnerais des nouvelles.
Merci :)