PowerPoint : problème pour copier un texte d une diapositive sur une autre diapositive avec une macr (résolu)

* Snoopy 07
Anonyme
Envoyé le 08/02/2017 à 09:51

Bonjour a tous
sur un autre forum j 'ai trouve cette macro pour inscrit un texte grâce a des boutons dans une zone de texte
Quand je clic sur un bouton qui est sur la diapositive N° 1 le texte de la diapositive N°1 doit aussi apparaisse sur la diapositive N°3
mais je ne sais pas quel code utilise pour faire cette copie

Sub change_texte(forme As Shape)

With SlideShowWindows(1).View.Slide.Shapes("Rectangle 5").TextFrame.TextRange

Select Case forme.Name

'Inscription Quine

Case "Rectangle 4"
.Text = "1 ère Quine"
Case "Rectangle 202"
.Text = "2 ème Quine"
Case "Rectangle 206"
.Text = "3 ème Quine"
Case "Rectangle 208"
.Text = "4 ème Quine"

'Inscription Carton plein

Case "Rectangle 209"
.Text = "1 er Carton plein"
Case "Rectangle 210"
.Text = "2 ème Carton plein"
Case "Rectangle 211"
.Text = "3 ème Carton plein"
Case "Rectangle 212"
.Text = "4 ème Carton plein"

'Inscription Partie inversée

Case "Rectangle 213"
.Text = "Partie inversée"

'Effacement Inscription

Case "Rectangle 3"
.Text = ""

End Select
End With

End Sub


merci d'avance pour votre aide
Snoopy07

Répondre à ce message

Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 08/02/2017 à 11:38


Bonjour,
Voici un petit bout de code qui n’est qu’une ébauche de solution, car il faut, pour en dire plus, connaître la position de la zone de texte dans la Diapo numéro 1. Il faut aussi savoir si la Diapo 3 contient du texte qui lui est propre ou si elle est vierge en attendant la copie de la diapo 1.
1) Code affecté au clic sur un bouton de commande « CommandButton1 » :
L’hypothèse est que le texte à copier est en position 3 et que la diapo 3 est vierge :


Private Sub CommandButton1_Click()
With ActivePresentation
.Slides(1).Shapes.Range(Array(3)).Copy
.Slides(3).Shapes.Paste
End With
End Sub


Ci-dessous également un code à affecter à un autre bouton, qui permet de lister tous les objets des diapos et leur position. La position dépend de l’ordre dans lequel les objets ont été créés sur la diapo.
2) Code affecté au clic sur un bouton « CommandButton2 :


Private Sub CommandButton2_Click()
Dim Diapo As Slide
Dim Message As String
Dim S As Shape
Message = "Liste des Shapes" & vbCr
With ActivePresentation
For Each Diapo In .Slides
Message = Message & "Diapo numéro : " & Diapo.SlideNumber & vbCr
For Each S In Diapo.Shapes
Message = Message & "Shape : " & S.Name & vbCr
Next
Next Diapo
End With
MsgBox Message
End Sub



NB : Information pour la liste des objets extraite du forum à cette adresse et qui fournit d'autres "tuyaux" :
www.generation-nt.com/reponses/identifier-shapes-039-slide-entraide-315206.html

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
* Snoopy 07
Anonyme
Envoyé le 08/02/2017 à 22:32

Bonsoir claude40

je te remercie pour ta réponse j ai bien essayer de faire quelques chose avec mais je n'y suis pas arriver



on ma donné ce ptt

moi j'ai juste rajouter les 10 boutons qui sont en haut a droit et la zone de texte qui se trouve juste dessous les boutons cette zone de texte je l'ai nommer Rectangle 5

j'ai trouvé sur un autre forum la macro Sub change_texte(forme As Shape)

Sur ma diapositive N°1 il y a 11 boutons
le bouton qui est en haut a gauche sert a remettre a zero (deja dans le ptt)

les 9 boutons visible et 1 bouton invisible qui sont en haut a droit servent a afficher le texte dans le rectangle N°5 qui est juste en dessous
les 10 boutons exécute la macro Sub change_texte(forme As Shape)

Dans ma diapositive N°3 il y a un rectange a droit ce rectangle est nomme
zone texte 198

quel code je doit mettre dans ma macro Sub change_texte(forme As Shape)
pour que le texte du rectangle N°5 de la diapositive N°1 apparaise aussi dans la zone texte 198 de la diapositive N°3

ou faut il que je rajoute une autre macro si oui quelle macro et ou la mettre

je joins mon fichier

http://www.cjoint.com/c/GBivsHsRVe5

merci d'avance pour votre aide

cordialement
Snoopy 07

Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 09/02/2017 à 10:23


Bonjour,
J'ai chargé le diaporama et je m'en occupe dans la journée. J'ai pas mal de choses à faire avant. Il faut rester patient !
A +
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 09/02/2017 à 14:51 Modifié par Claude40


Bonjour,
Voici ce qu’il faut coder pour récupérer le texte contenu dans le « Rectangle 5 » de la diapo 1 et le copier dans la « ZoneTexte 198 » de la diapo n° 3.


Dim MyTexte As String
MyTexte = ActivePresentation.Slides(1).Shapes("Rectangle 5").TextFrame.TextRange.Text
ActivePresentation.Slides(3).Shapes("ZoneTexte 198").TextFrame.TextRange.Text = MyTexte


Il faut le mettre , soit dans le code associé au clic sur un nouveau bouton, soit le « glisser » dans le code du module 1 ou du module 2 si la copie doit être faite automatiquement, à l’endroit adéquat selon le moment ou la copie doit être faite.

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
* Snoopy 07
Anonyme
Envoyé le 10/02/2017 à 15:50

Bonjour claude40

je te remercie pour le code et le temps que vous m avez accorde

je viens de mettre votre code dans le module 2 et ça ne marche pas j ai essaye plus endroit dans le module et ça ne fonctionne pas

je vous met le code du module 2 comment ça vous pourrez voir ou j ai mis votre code et me dire si il faut que je le mette la ou si il faut le placer ailleurs


Sub change_texte(forme As Shape)
Dim MyTexte As String

With SlideShowWindows(1).View.Slide.Shapes("Rectangle_texte").TextFrame.TextRange

Select Case forme.Name

'Inscription Quine

Case "Rectangle 5"
.Text = "1 ère Quine"
Case "Rectangle 6"
.Text = "2 ème Quine"
Case "Rectangle 7"
.Text = "3 ème Quine"
Case "Rectangle 8"
.Text = "Carton plein"

'Inscription Carton plein

Case "Rectangle 9"
.Text = "1 er Carton plein"
Case "Rectangle 10"
.Text = "2 ème Carton plein"
Case "Rectangle 11"
.Text = "3 ème Carton plein"
Case "Rectangle 12"
.Text = "4 ème Carton plein"


'Inscription Partie inversée

Case "Rectangle 13"
.Text = "Partie inversée"

' Effacement inscription

Case "Rectangle 4"
.Text = ""


End Select
End With
MyTexte = ActivePresentation.Slides(1).Shapes("Rectangle 5").TextFrame.TextRange.Text
ActivePresentation.Slides(3).Shapes("ZoneTexte 198").TextFrame.TextRange.Text = MyTexte
End Sub



pouvez vous dire pourquoi ca ne marche pas et me donner quelque explication sur cette programmation

en vous remerciant d avance
cordialement
Snoopy 07

* Snoopy 07
Anonyme
Envoyé le 10/02/2017 à 16:15

Bonjour claude40

je viens de trouver mon erreur maintenant ça marche mais j ai un petit souci
quand je clic sur le carre en haut a gauche pour remettre a zero
mon rectangle zone texte 198 disparait de la diapo N°3 et quand je clic sur un des bouton en haut a droit cette zone texte 198 ne reapparait pas
comment faire pour que cette zone de texte ne disparaisse pas

merci pour votre aide

cordialement

Snoopy 07



Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 10/02/2017 à 16:32


Bonjour,
Quand j’ai créé ce code, j’ai ajouté un bouton à cliquer sur la diapo N° 1 et j’ai installé ce code sur l’événement click de ce bouton, c'est-à-dire dans le module « Slide1 », car je n’ai pas décortiqué la logique entière du fonctionnement du diaporama.
Il faut d’abord déterminer quand le transfert de texte doit être fait, ainsi que je le disais dans mon post précédent.
Ensuite, il faut repérer dans le code des modules 1 ou 2, ce fameux moment pour placer le code.
N’étant pas l’auteur du diaporama, j’ai du mal à déterminer la raison de ce transfert de texte ainsi que le moment adéquat.
Désolé.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 10/02/2017 à 16:48


Bonjour,
Nos réponses se sont croisées.
Je regarde le pb du Texte 198.
A +
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 10/02/2017 à 17:25


Bonjour,
Dans le module 1, dans le Sub Init_All, dans le paragraphe « ' Slide 03 : make the title visible », juste avant le End if , ajouter cette ligne :


ActivePresentation.Slides("Slide_After").Shapes("ZoneTexte 198").Visible = msoTrue



Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
* Snoopy 07
Anonyme
Envoyé le 13/02/2017 à 21:30

Bonsoir claude40

je te remercie pour les code qui fonctionne parfaitement

une dernière question comment mettre des info bulles sur des bouton qui exécute des macros
je sais comment le faire sur un bouton qui exécute un lien hypertexte mais j ai pas trouver comment le faire sur un bouton qui exécute des macros

merci d'avance pour votre aide
cordialement
Snoopy 07


Claude40 Claude40
1 823 contributions
Membre depuis le 24/03/2010
Envoyé le 13/02/2017 à 23:20


Bonsoir,
Je pense que l’on ne peur pas mettre d’infobulle sur un bouton, mais on peut émettre un message (Msgbox) lorsque la souris passe sur le bouton.
Sélectionner le bouton et sous « Développeur », choisir « Afficher le code »
Va apparaître le code placé pour copier le rectangle 5 sur la diapo N° 3 qui s’exécute lors de l’événement Click.
En haut à droite sélectionner « Mousemove » à la place de Click dans la liste déroulante des événements.
Taper un Msgbox avec le texte souhaité pour l’infobulle entre Private Sub et End Sub
Le Msgbox s’affichera au centre de l’écran contrairement à l’infobulle qui apparaîtrait au-dessus de l’objet.

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro), mais peuvent ne pas fonctionner sur tous les Pc
* Snoopy 07
Anonyme
Envoyé le 14/02/2017 à 13:55

Bonjour claude40

merci pout ta réponse et pour ton aide
cordialement
Snoopy 07



Participer à cette discussion

« Retour sur la liste des messages de ce forum