Remplacer formules par leurs valeurs dans les graphiques
Fermé
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
-
18 févr. 2015 à 13:53
Le_Nuss Messages postés 11 Date d'inscription mercredi 11 février 2015 Statut Membre Dernière intervention 23 février 2015 - 23 févr. 2015 à 19:46
Le_Nuss Messages postés 11 Date d'inscription mercredi 11 février 2015 Statut Membre Dernière intervention 23 février 2015 - 23 févr. 2015 à 19:46
A voir également:
- Remplacer formules par leurs valeurs dans les graphiques
- Remplacer disque dur par ssd - Guide
- Remplacer dans word - Guide
- Formules - Télécharger - Études & Formations
- Formules excel de base - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
5 réponses
m@rina
Messages postés
21200
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
20 décembre 2024
11 370
18 févr. 2015 à 14:41
18 févr. 2015 à 14:41
Bonjour,
En gros, tu incorpores un fichier Excel lui-même lié à un autre fichier Excel.
Et tu utilises une macro pour la mise à jour.
Jusque là OK
Mais après tu dis "le code préserve les formules dans les feuilles excel incorporées "... Ben oui, c'est le principe de la liaison. Si tu remplaces les formules par leur valeur dans le classeur incorporé, cela signifie qu'il ne sera plus lié.
Donc,
soit c'est lié et tu peux faire tes mises à jour.
soit ça ne l'est pas et les mises ne sont plus faisable.
De plus, je n'ai pas compris ce qui est lié dans le classeur incorporé : le tableau de chiffres ou bien le graph ?
Mais peut être n'ai-je rien compris du tout ! :s
m@rina
En gros, tu incorpores un fichier Excel lui-même lié à un autre fichier Excel.
Et tu utilises une macro pour la mise à jour.
Jusque là OK
Mais après tu dis "le code préserve les formules dans les feuilles excel incorporées "... Ben oui, c'est le principe de la liaison. Si tu remplaces les formules par leur valeur dans le classeur incorporé, cela signifie qu'il ne sera plus lié.
Donc,
soit c'est lié et tu peux faire tes mises à jour.
soit ça ne l'est pas et les mises ne sont plus faisable.
De plus, je n'ai pas compris ce qui est lié dans le classeur incorporé : le tableau de chiffres ou bien le graph ?
Mais peut être n'ai-je rien compris du tout ! :s
m@rina
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
18 févr. 2015 à 15:00
18 févr. 2015 à 15:00
Bonjour, voici le process :
1) Mon ppt_v1 est lié à l'excel
2) Je mets à jour ppt_v1 et le "délie" grâce à la macro, puis enregistre sous "ppt_semaine1"
3) J'envoie ppt_semaine1
4) Dans une semaine, je rouvre ppt_v1, refais la même chose et envoie ppt_semaine2
1) Mon ppt_v1 est lié à l'excel
2) Je mets à jour ppt_v1 et le "délie" grâce à la macro, puis enregistre sous "ppt_semaine1"
3) J'envoie ppt_semaine1
4) Dans une semaine, je rouvre ppt_v1, refais la même chose et envoie ppt_semaine2
m@rina
Messages postés
21200
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
20 décembre 2024
11 370
19 févr. 2015 à 16:44
19 févr. 2015 à 16:44
Bonjour
C'est plus clair.
Néanmoins, je ne vois pas que ta macro ôte les liens. Je vois juste qu'elle fait une mise à jour.
Cela étant, je ne procéderais pas de cette façon. Voici comment je ferais :
- Un classeur Excel dans lequel tu travailles, tu entre tes données et tu fais tes graphs, etc.
- Un second classeur Excel : lorsque le premier est fait, j'enregistre et j'enregistre aussi sous le nom du second classeur, donc en l'écrasant. Le nom de ce classeur ne bougera donc pas.
Je crée une macro qui enlève toutes les formules de classeur. Et à chaque enregistrement, je lance la macro.
- Le fichier PowerPoint qui est lié à ce second classeur Excel sans formules. Les liaisons dans le fichier PowerPoint seront mis à jour automatiquement, puisque dernier sera toujours lié avec le même classeur Excel.
Mais tu parlais d'incorporation, il n'y en a pas, que des liaisons.
m@rina
C'est plus clair.
Néanmoins, je ne vois pas que ta macro ôte les liens. Je vois juste qu'elle fait une mise à jour.
Cela étant, je ne procéderais pas de cette façon. Voici comment je ferais :
- Un classeur Excel dans lequel tu travailles, tu entre tes données et tu fais tes graphs, etc.
- Un second classeur Excel : lorsque le premier est fait, j'enregistre et j'enregistre aussi sous le nom du second classeur, donc en l'écrasant. Le nom de ce classeur ne bougera donc pas.
Je crée une macro qui enlève toutes les formules de classeur. Et à chaque enregistrement, je lance la macro.
- Le fichier PowerPoint qui est lié à ce second classeur Excel sans formules. Les liaisons dans le fichier PowerPoint seront mis à jour automatiquement, puisque dernier sera toujours lié avec le même classeur Excel.
Mais tu parlais d'incorporation, il n'y en a pas, que des liaisons.
m@rina
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
19 févr. 2015 à 17:09
19 févr. 2015 à 17:09
Hello, merci pour la réponse.
Le code actuel ne fait que mettre à jour en effet; j'aimerais qu'il ôte les liens aussi (donc pour chaque classeur incorporé, copier le contenu, et coller au même endroit mais en valeur: je n'arrive pas à traduire ces instructions en vba).
Concernant ta méhode : tu me proposes un powerpoint lié à un Excel sans formule. Mais je ne veux pas lié mon powerpoint à un excel, c'est justement la raison de ma démarche. Je veux un powerpoint totalement indépendant que je peux envoyer seul et dont les données peuvent être modifiées par mon destinataire.
Le code actuel ne fait que mettre à jour en effet; j'aimerais qu'il ôte les liens aussi (donc pour chaque classeur incorporé, copier le contenu, et coller au même endroit mais en valeur: je n'arrive pas à traduire ces instructions en vba).
Concernant ta méhode : tu me proposes un powerpoint lié à un Excel sans formule. Mais je ne veux pas lié mon powerpoint à un excel, c'est justement la raison de ma démarche. Je veux un powerpoint totalement indépendant que je peux envoyer seul et dont les données peuvent être modifiées par mon destinataire.
m@rina
Messages postés
21200
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
20 décembre 2024
11 370
19 févr. 2015 à 20:14
19 févr. 2015 à 20:14
Si tu souhaites que le destinataire puisse modifier les données, il n'y a pas 36000 solutions. Il y en a deux :
1) On incorpore le fichier Excel. Cela étant, si tu as 20 graphs, tu auras le droit d'incorporer les 20 classeurs... faire attention au poids.
2) On lie.
La première solution est plus pratique mais il faut gérer le poids du fichier, la seconde oblige de joindre systématiquement le fichier Excel.
Que ce soit l'une ou l'autre des solutions, ta solution de macro n'ira pas. La lmacro peut mettre à jour, peut supprimer les liaisons, mais ne pourra transformer une liaison en incorporation, parce que ce n'est pas du tout la même démarche.
m@rina
1) On incorpore le fichier Excel. Cela étant, si tu as 20 graphs, tu auras le droit d'incorporer les 20 classeurs... faire attention au poids.
2) On lie.
La première solution est plus pratique mais il faut gérer le poids du fichier, la seconde oblige de joindre systématiquement le fichier Excel.
Que ce soit l'une ou l'autre des solutions, ta solution de macro n'ira pas. La lmacro peut mettre à jour, peut supprimer les liaisons, mais ne pourra transformer une liaison en incorporation, parce que ce n'est pas du tout la même démarche.
m@rina
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
>
m@rina
Messages postés
21200
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
20 décembre 2024
20 févr. 2015 à 09:59
20 févr. 2015 à 09:59
Merci M@rina mais ce n'est pas exactement ce que je veux :
Je veux que, pour chaque graphe, dans l'excel incorporé, les formules soient remplacées par leurs valeurs.
Je veux que, pour chaque graphe, dans l'excel incorporé, les formules soient remplacées par leurs valeurs.
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
20 févr. 2015 à 13:49
20 févr. 2015 à 13:49
Il semblerait que dans mon code, la ligne en gras (correspondant au collage des valeurs) ne marche pas, mais je ne sais pas pourquoi
Dim pptChart As Chart
Dim pptChartData As ChartData
Dim xlWorkbook As Object
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
Set pptChart = shp.Chart
Set pptChartData = pptChart.ChartData
pptChartData.Activate
Set pptWorkbook = pptChartData.Workbook
On Error Resume Next
Set pptWorksheet = pptWorkbook.Worksheets(1)
pptWorksheet.Range("A1:E40").Copy
pptWorksheet.Range("A1").PasteSpecial Paste:=xlPasteValues
On Error GoTo 0
pptWorkbook.Close True
End If
Next
Next
Set pptWorkbook = Nothing
Set pptChartData = Nothing
Set pptChart = Nothing
End Sub
m@rina
Messages postés
21200
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
20 décembre 2024
11 370
>
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
20 févr. 2015 à 15:56
20 févr. 2015 à 15:56
Bonjour,
C'est surtout que ton objet (shp) n'est pas considéré comme un diagramme (HasChat) qui est un objet créé depuis PowerPoint (HasShape n'est pas valable pour des objets liés ou incorporés).
Donc ta macro ne fait rien.
S'il a été inséré dans PPT via un collage (liaison ou incorporation), c'est un Shape de type OLEOject.
Exemple pour un objet lié :
Exemple pour un objet incorporé :
m@rina
C'est surtout que ton objet (shp) n'est pas considéré comme un diagramme (HasChat) qui est un objet créé depuis PowerPoint (HasShape n'est pas valable pour des objets liés ou incorporés).
Donc ta macro ne fait rien.
S'il a été inséré dans PPT via un collage (liaison ou incorporation), c'est un Shape de type OLEOject.
Exemple pour un objet lié :
If shp.Type= msoLinkedOLEObject Then
Exemple pour un objet incorporé :
If shp.Type= msoEmbeddedOLEObject Then
m@rina
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
23 févr. 2015 à 19:18
23 févr. 2015 à 19:18
Bon ok je viens de comprendre.
1) J'ai créé mes graphes sur powerpoint
2) Dans mon powerpoint actuel, les données de mes graphes sont des résultats de formules
3) Ces formules contiennent le nom d'un fichier excel externe à mon powerpoint
4) J'aimerais que pour chacun des graphes, la macro remplace les formules derrière le graphe par leurs valeurs
Je m'excuse d'avoir parlé d'incorporation de liaison, ces mots ont en effet un autre sens dans le lexique de MS
Néanmois: si c'est plus simple d'aboutir au résultat que je veux (update automatique de nombreux graphes à partir d'un excel, possibilité pour mon destinataire de ne recevoir que le powerpoint et d'être quand même capable de modifier la donnée), je peux passer à une autre méthode !
1) J'ai créé mes graphes sur powerpoint
2) Dans mon powerpoint actuel, les données de mes graphes sont des résultats de formules
3) Ces formules contiennent le nom d'un fichier excel externe à mon powerpoint
4) J'aimerais que pour chacun des graphes, la macro remplace les formules derrière le graphe par leurs valeurs
Je m'excuse d'avoir parlé d'incorporation de liaison, ces mots ont en effet un autre sens dans le lexique de MS
Néanmois: si c'est plus simple d'aboutir au résultat que je veux (update automatique de nombreux graphes à partir d'un excel, possibilité pour mon destinataire de ne recevoir que le powerpoint et d'être quand même capable de modifier la donnée), je peux passer à une autre méthode !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le_Nuss
Messages postés
11
Date d'inscription
mercredi 11 février 2015
Statut
Membre
Dernière intervention
23 février 2015
23 févr. 2015 à 19:46
23 févr. 2015 à 19:46
J'ai passé des heures dessus ! Tout ce que je trouve sur le net, c'est justement le cas de fichier excel incorporés ou liés. Ce que je ne comprends vraiment pas, c'est pourquoi les commandes que je rajoute dans ma boucle (la boucle est bien exécutée puisque la condition est vérifiée) ne marchent pas:
J'ai essayé en copiant tout et en collant juste les valeurs
J'ai essayé un ActiveWorkbook.BreakLink
Bref toute sorte de commandes qui marchent nickel quand j'exécute ma macro dans excel et qui ne marche pas dans mon powerpoint !!
J'ai essayé en copiant tout et en collant juste les valeurs
J'ai essayé un ActiveWorkbook.BreakLink
Bref toute sorte de commandes qui marchent nickel quand j'exécute ma macro dans excel et qui ne marche pas dans mon powerpoint !!