Ajouter une numérotation auto au sein même d'une diapositive
Larieuse33
Messages postés
3
Date d'inscription
mercredi 11 septembre 2024
Statut
Membre
Dernière intervention
11 septembre 2024
-
11 sept. 2024 à 09:19
Bruno83200_6929 Messages postés 282 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 23 octobre 2024 - 11 sept. 2024 à 15:47
Bruno83200_6929 Messages postés 282 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 23 octobre 2024 - 11 sept. 2024 à 15:47
A voir également:
- Ajouter une numérotation auto au sein même d'une diapositive
- Ajouter une application au démarrage - Guide
- Ajouter une signature sur word - Guide
- Ajouter une adresse mail sur gmail - Guide
- Ajouter une liste déroulante excel - Guide
- Comment ajouter une page sur libre office ✓ - Forum LibreOffice / OpenOffice
1 réponse
Bruno83200_6929
Messages postés
282
Date d'inscription
jeudi 18 juin 2020
Statut
Membre
Dernière intervention
23 octobre 2024
57
11 sept. 2024 à 13:47
11 sept. 2024 à 13:47
Bonjour,
Oui, c'est réalisable en créant une macro.
Dans l'éditeur VBA, cliquez sur Insert > Module pour ajouter un nouveau module.
Collez le code suivant :
Sub AjouterNumerotation() Dim diapo As Slide Dim shape As shape Dim compteur As Integer Dim prefix As String Dim zoneDeTexte As shape Dim nouvelleLigne As String Dim texteActuel As String ' Initialisation du compteur compteur = 1 prefix = "RG" ' Boucle à travers chaque diapositive de la présentation For Each diapo In ActivePresentation.Slides ' Boucle à travers chaque forme (shape) de la diapositive For Each shape In diapo.Shapes ' Vérifie si la forme est une zone de texte If shape.HasTextFrame Then If shape.TextFrame.HasText Then ' Sépare chaque paragraphe (ligne) dans la zone de texte For i = 1 To shape.TextFrame.TextRange.Paragraphs.Count ' Récupère le texte actuel du paragraphe texteActuel = shape.TextFrame.TextRange.Paragraphs(i).Text ' Formate la nouvelle ligne avec la numérotation automatique nouvelleLigne = prefix & Format(compteur, "000") & " : " & texteActuel ' Remplace l'ancien texte par le nouveau texte numéroté shape.TextFrame.TextRange.Paragraphs(i).Text = nouvelleLigne ' Incrémenter le compteur compteur = compteur + 1 Next i End If End If Next shape Next diapo End Sub
Après avoir collé le code, vous pouvez exécuter la macro en appuyant sur F5 dans l'éditeur VBA ou en retournant dans PowerPoint et en allant dans Outils > Macro > Macro…, puis sélectionnez AjouterNumerotation.
Je pense que cela devrait fonctionner.
11 sept. 2024 à 13:50
Merci Bruno pour votre retour. Je regarde ça rapidement et vous tiens au courant
11 sept. 2024 à 14:40
Bruno, la macro fonctionne ! Mais elle ne répond finalement pas à mon besoin.
Pour être plus efficace et pour éviter d'impacter les zones de titre et de bas de page, je songe à ajouter "RG000" à la Mano devant mes zones de texte. Il me faudrait pouvoir lancer une macro qui remplace les RG000 par la numérotation (RG001, RG002, RG003, etc.).
A l'inverse il me serait utile, si jamais le document vient à bouger après le lancement de cette macro, d'avoir une autre macro permettant de remplacer toutes les numérotations par "RG000". Ce qui me permettrait de relancer la macro initiale. Savez vous si s'est envisageable ? Avez vous une idée du code à coller dans l'éditeur VBA ?
11 sept. 2024 à 15:27
C'est réalisable, je vous demande un peu de temps pour réécrire les macros.
11 sept. 2024 à 15:45
Me voilà de nouveau. Je vous adresse trois nouvelles macros. AjouterRG000SansIncrementation() qui va vous permettre de remettre le PPS que vous avez modifié uniquement avec des RG000. Une seconde NumeroterRG000() qui va permettre de renuméroter tous les RG rencontrés. Et une troisième RemettreEnRG000() tous les RG d'un PPS.
Il faut donc modifier le code pour insérer uniquement des RG000 partout avec une nouvelle macro comme ceci :
11 sept. 2024 à 15:46
Ensuite, il suffit de réécrire une macro pour remplacer tous les RG000 rencontré dans le document, et les numérotant de RG001 à ...