Lien depuis cellule Excel
Fermé
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
-
16 juil. 2020 à 17:27
m@rina Messages postés 21209 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 décembre 2024 - 20 juil. 2020 à 16:13
m@rina Messages postés 21209 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 décembre 2024 - 20 juil. 2020 à 16:13
A voir également:
- Lien depuis cellule Excel
- Excel cellule couleur si condition texte - Guide
- Lien url - Guide
- Aller à la ligne dans une cellule excel - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
6 réponses
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
16 juil. 2020 à 18:33
16 juil. 2020 à 18:33
Bonjour,
Peux-tu être plus clair ? Je n'ai pas compris ce que tu veux faire...
m@rina
Peux-tu être plus clair ? Je n'ai pas compris ce que tu veux faire...
m@rina
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
16 juil. 2020 à 19:48
16 juil. 2020 à 19:48
Bonjour,
Sans macroter, il faut que tu copies ta cellule et tu la colles avec lien (onglet Accueil, bouton Coller => Collage spécial => Coller le lien). La mise à jour est automatique.
Pour la mise en form;e, c'est limité avec PowerPoint... Tu pourras mettre un contour, avec la couleur et l'épaisseur de ton choix. Si ta cellule Excel n'a pas de fond de couleur, tu pourras en mettre un dans PowerPoint (Format de la forme). En revanche, tu ne pourras pas changer la police, mais tu pourras agrandir la forme, et la police s'agrandira également.
Tes modifs de mise en forme resteront après mise à jour.
m@rina
Sans macroter, il faut que tu copies ta cellule et tu la colles avec lien (onglet Accueil, bouton Coller => Collage spécial => Coller le lien). La mise à jour est automatique.
Pour la mise en form;e, c'est limité avec PowerPoint... Tu pourras mettre un contour, avec la couleur et l'épaisseur de ton choix. Si ta cellule Excel n'a pas de fond de couleur, tu pourras en mettre un dans PowerPoint (Format de la forme). En revanche, tu ne pourras pas changer la police, mais tu pourras agrandir la forme, et la police s'agrandira également.
Tes modifs de mise en forme resteront après mise à jour.
m@rina
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
Modifié le 17 juil. 2020 à 09:11
Modifié le 17 juil. 2020 à 09:11
Bonjour et merci pour ta réponse.
Je connais déjà cette version mais comme tu dis, la mise en forme est limitée...
voici en photo ce que ça fait : j'ai collé "avec lien" par dessus une zone de texte bleu.
Je n'arrive pas à retirer le contour même si dans Excel, je mets "sans contour".
Avez-vous une solution peut-être avec macro ? je connais un peu avec Excel et je pense que je saurai adapter :)
Merci
Je connais déjà cette version mais comme tu dis, la mise en forme est limitée...
voici en photo ce que ça fait : j'ai collé "avec lien" par dessus une zone de texte bleu.
Je n'arrive pas à retirer le contour même si dans Excel, je mets "sans contour".
Avez-vous une solution peut-être avec macro ? je connais un peu avec Excel et je pense que je saurai adapter :)
Merci
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
>
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
17 juil. 2020 à 09:39
17 juil. 2020 à 09:39
Pour le VBA, j'ai trouvé ce code sur le web que j'ai mis dans la macro sur PPT
J'ai par contre une erreur sur cette ligne :
Après je trouve ça normal car il ne sait pas dans quel classeur Excel chercher l'information.
Sub ModifierPresentationExistante() Dim PptApp As PowerPoint.Application Dim PptDoc As PowerPoint.Presentation Set PptApp = CreateObject("Powerpoint.Application") PptApp.Visible = True Set PptDoc = PptApp.Presentations.Open("C:\Users\flavien\Desktop\Restitution_type_v2.ppt") With PptDoc 'insère le contenu de la cellule A1 dans la deuxième zone de texte, 'du 3eme slide .Slides(1).Shapes(1).TextFrame.TextRange.Text = Range("A1") 'sauvegarde la présentation .Save End With 'ferme la présentation PptDoc.Close 'ferme powerpoint PptApp.Quit End Sub
J'ai par contre une erreur sur cette ligne :
.Slides(1).Shapes(1).TextFrame.TextRange.Text = Range("A1")
Après je trouve ça normal car il ne sait pas dans quel classeur Excel chercher l'information.
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
17 juil. 2020 à 18:12
17 juil. 2020 à 18:12
Bonjour,
Je ne pense pas que l'erreur se situe au niveau de Range.
Vérifie dans ta présentation PPT ce qu'est Slides(1).Shapes(1)...
Dans PowerPoint, tout est Shape. Si le Shapes(1) est une photo par exemple, ça va provoquer une erreur.
Par ailleurs, si tu veux que la màj se fasse automatique dans ton PowerPoint dès que tu modifies la cellule, il faut faire une macro événementielle.
Essaie de mettre ça dans la feuille en question et non pas dans un module. La macro se lancera automatiquement lorsque tu modfieras la valeur de la cellule A1.
Tu remarqueras que je n'utilise pas Open mais GetObject qui n'ouvre pas la présentation car a priori tu n'en n'as pas besoin car tu l'ouvres, et tu la fermes...
Par ailleurs, avec Open, au cas où la présentation serait ouverte, ça posera problème car PowerPoint ouvrirait une deuxième fois la présentation qui serait alors en lecture seule.
m@rina
Je ne pense pas que l'erreur se situe au niveau de Range.
Vérifie dans ta présentation PPT ce qu'est Slides(1).Shapes(1)...
Dans PowerPoint, tout est Shape. Si le Shapes(1) est une photo par exemple, ça va provoquer une erreur.
Par ailleurs, si tu veux que la màj se fasse automatique dans ton PowerPoint dès que tu modifies la cellule, il faut faire une macro événementielle.
Essaie de mettre ça dans la feuille en question et non pas dans un module. La macro se lancera automatiquement lorsque tu modfieras la valeur de la cellule A1.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim PptDoc As Object
Dim texte As String
Set PptDoc = GetObject("C:\xxxx\yyyy.pptx")
texte = Range("A1")
With PptDoc
.Slides(1).Shapes(1).TextFrame.TextRange.Text = texte
.Save
End With
End Sub
Tu remarqueras que je n'utilise pas Open mais GetObject qui n'ouvre pas la présentation car a priori tu n'en n'as pas besoin car tu l'ouvres, et tu la fermes...
Par ailleurs, avec Open, au cas où la présentation serait ouverte, ça posera problème car PowerPoint ouvrirait une deuxième fois la présentation qui serait alors en lecture seule.
m@rina
Merci m@rina pour ta réponse détaillée :)
Alors par contre, je ne pourrai pas faire de test avant lundi car c’est sur mon ordinateur pro désolé... mais j’ai hâte d’essayer :)
Effectivement je te rejoins avec Open à chaque fois ça ouvre en double et en lecture seule ce qui n’est pas terrible.
D’autre part, comme savoir le numéro de ma zone de texte pour le « shapes(x) ? J’ai cherché un paramètre mais je n’ai pas trouvé.
Ou est-ce que je vérifie ce qu’est Shapes(1) 2, 3 etc ... ?
Je pense que tu m’as bien orienté :) hâte de faire le test lundi, je te tiendrai au courant.
Bon week-end
Alors par contre, je ne pourrai pas faire de test avant lundi car c’est sur mon ordinateur pro désolé... mais j’ai hâte d’essayer :)
Effectivement je te rejoins avec Open à chaque fois ça ouvre en double et en lecture seule ce qui n’est pas terrible.
D’autre part, comme savoir le numéro de ma zone de texte pour le « shapes(x) ? J’ai cherché un paramètre mais je n’ai pas trouvé.
Ou est-ce que je vérifie ce qu’est Shapes(1) 2, 3 etc ... ?
Je pense que tu m’as bien orienté :) hâte de faire le test lundi, je te tiendrai au courant.
Bon week-end
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
18 juil. 2020 à 00:23
18 juil. 2020 à 00:23
Bonsoir,
Alors pour Range("A1") : à partir du moment où tu mets le code dans la page du classeur, il n'y a pas de doute, car c'est une macro événementielle qui va se déclencher lorsque la cellule A1 de cette page de ce classeur sera modifiée. Tu peux faire clic droit sur l'onglet de la feuille => Visualiser le code et c'est à que tu mets ton code.
Tu ne lies pas, puisque (je me répète) c'est juste une macro événementielle.
m@rina
Alors pour Range("A1") : à partir du moment où tu mets le code dans la page du classeur, il n'y a pas de doute, car c'est une macro événementielle qui va se déclencher lorsque la cellule A1 de cette page de ce classeur sera modifiée. Tu peux faire clic droit sur l'onglet de la feuille => Visualiser le code et c'est à que tu mets ton code.
Tu ne lies pas, puisque (je me répète) c'est juste une macro événementielle.
m@rina
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
20 juil. 2020 à 00:18
20 juil. 2020 à 00:18
Oublié de répondre à ta question concernant les Shapes : le premier de la liste c'est Shapes(1) etc.
Mais, le mieux est de nommer ta zone de texte ou ton espace.
https://faqword.com/index.php/office-et-les-objets-graphiques/1036-comment-connaitre-et-modifier-le-nom-d-un-objet
m@rina
Mais, le mieux est de nommer ta zone de texte ou ton espace.
https://faqword.com/index.php/office-et-les-objets-graphiques/1036-comment-connaitre-et-modifier-le-nom-d-un-objet
m@rina
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
20 juil. 2020 à 09:40
20 juil. 2020 à 09:40
Bonjour m@rina,
J'ai fait le test et il est concluant !! :)
Tant sur la macro événementielle que sur la Shapes. D'ailleurs à ce propos, je les ai renommé et mon rectangle bleu je l'ai appelé "titre" et et du coup dans ma macro j'ai ceci :
Merci beaucoup pour ton aide
Dernière question avant de clore le sujet si c'est possible :
Dans ma zone de texte je veux écrire :
"NOM DU DOSSIER" (à la ligne)
Compte rendu de notre audit" comme indiqué sur la photo
Y a t il moyen de n'écrire que le nom du dossier dans la cellule A1 et que cela se concatène avec "compte rendu de notre audit" qui est déjà écrit dans le PPT ? Du coup j'ai essayé en écrivant ceci directement dans le code :
ça fonctionne mais bon ...
Je te remercie d'avance.
J'ai fait le test et il est concluant !! :)
Tant sur la macro événementielle que sur la Shapes. D'ailleurs à ce propos, je les ai renommé et mon rectangle bleu je l'ai appelé "titre" et et du coup dans ma macro j'ai ceci :
titre = Range("A1") plan = Range("A2") With PptDoc .Slides(1).Shapes("titre").TextFrame.TextRange.Text = titre .Slides(1).Shapes("plan").TextFrame.TextRange.Text = plan .Save End With
Merci beaucoup pour ton aide
Dernière question avant de clore le sujet si c'est possible :
Dans ma zone de texte je veux écrire :
"NOM DU DOSSIER" (à la ligne)
Compte rendu de notre audit" comme indiqué sur la photo
Y a t il moyen de n'écrire que le nom du dossier dans la cellule A1 et que cela se concatène avec "compte rendu de notre audit" qui est déjà écrit dans le PPT ? Du coup j'ai essayé en écrivant ceci directement dans le code :
With PptDoc .Slides(1).Shapes("titre").TextFrame.TextRange.Text = titre & "Compte rendu de notre audit" .Save End With
ça fonctionne mais bon ...
Je te remercie d'avance.
m@rina
Messages postés
21209
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
25 décembre 2024
11 372
20 juil. 2020 à 16:13
20 juil. 2020 à 16:13
Bonjour,
Je ne comprends pas ton "mais bon..." :))
Ton code est bon à partir du moment où le texte est toujours ce texte. Il faut juste ajouter un retour paragraphe après le nom du dossier :
Bien sûr tu pourrais récupérer dans la macro ce texte mais ce serait intéressant seulement si ce texte changeait. Auquel cas :
Mais, là, c'est moi qui dis "mais bon..." ! :)
m@rina
Je ne comprends pas ton "mais bon..." :))
Ton code est bon à partir du moment où le texte est toujours ce texte. Il faut juste ajouter un retour paragraphe après le nom du dossier :
.Slides(1).Shapes("titre").TextFrame.TextRange.Text = titre & chr(13) & "Compte rendu de notre audit"
Bien sûr tu pourrais récupérer dans la macro ce texte mais ce serait intéressant seulement si ce texte changeait. Auquel cas :
With PptDoc.Slides(1).Shapes("titre").TextFrame.TextRange
textppt = .Paragraphs(2) 'récup du 2e para
.Text = titre & Chr(13) & textppt
End With
Mais, là, c'est moi qui dis "mais bon..." ! :)
m@rina
16 juil. 2020 à 19:09
J’écris « test » dans la cellule A1 d’un fichier Excel.
J’ai un PPT avec une zone de texte.
Est ce que la zone de texte peut prendre automatiquement la valeur de la cellule A1 (« test ») ?