OVH Cloud OVH Cloud

dimensionner la fenetre excel dans word

29 réponses
Avatar
Manu91
Bonjour,

Je souhaite pouvoir incorporer, par code, un fichier excel dans un document
Word (word pour la qualité de la mise en page, et excel pour les capacités de
calcul).
L'insertion se passe tres bien avec l'objet ole, mais... je suis incapable
de dimensionner la fenêtre excel pour cacher certaines formules,
Effectivement, la propriété Height s'applique sur l'objet image et applique
une espèce de fonction zoom à cet objet, alors que je souhaite pouvoir
demander l'affichage des cellules ("A1","F9") par exemple...

Je ne sais pas si je me suis bien fait comprendre, n'hésitez pas à me
demander des détails...

Manuel

9 réponses

1 2 3
Avatar
Circ
Hello anacoluthe !!!

De retour, enfin !!:D


Bonjour Circé, Manu91, Geo et les autres !

'Circé' nous a écrit ...
Mais, dans ce cas, pourquoi, dans Excel, ne pas masquer la ligne à ne pas
insérer dans Word ?


Absolument : il faut le faire dans Excel :-)


Voui, paske depuis le début, je pense qu'il ne s'agit pas d'un problème
de redimensionnement, mais de choisir les cellules à incorporer dans
Word.

Tu vas avoir droit à la bise de Madame Manu91... Moi, j'aurais préféré
la bise de Manu, mais ce n'etait pas prévu dans le règlement du
concours !!! :D))))

Circé
http://faqword.free.fr

Un objet incorporé de classtype Excel doit être manipulé en vba par Excel
et non par Word. On passe de l'un à l'autre ainsi :

Dim objOLE As Word.OLEFormat ' objet OLE dans WORD
Dim objXL As Excel.Workbook ' Objet EXCEL

Set objOLE = ActiveDocument.InlineShapes(1).OLEFormat
objOLE.Activate
Set objXL = objOLE.Object

Ensuite on programme tout l'objet dans le vba d'EXCEL :
With objXL.ActiveSheet
.Cells(1, 1).Value = "Bonjour à EXCEL !"
...
End With

Anacoluthe
« Si tout ici-bas était excellent, il n’y aurait plus rien d’excellent. »
- Denis DIDEROT



Avatar
Manu91
Salut !!!

La solution de "contournement" fonctionne à merveille !!! Ravi que je suis
!!! ;-)

bon, par contre, ma frustration reste entière... va falloir que j'en cause 2
minutes à Billou la prochaine fois que je le verrais !
Aussi, ne m'avouant pas vaincu, je vais continuer à chercher et garder cette
discussion ouverte, on sais jamais...

Encore merci Geo !




re-Geo...

Excellent le coup de la deuxième feuille.... les solutions les plus simples
sont souvent les meilleures, j'étais resté sur l'idée que l'on ne pouvait
récupéré qu'une seule feuille...


M'enfin, qui c'est qui voulait un classeur entier ? :-)
Et les données sur les autres feuilles peuvent occuper toute la place
qu'on veut, il semble que le format affiché soit calculé sur la
première uniquement.

Ça ne reste qu'une solution de contournement.

pour le "editing window" en fin de réponse, j'étais effectivement tomber
dessus voici quelques jour, mais ce terme porte à confusion, je pense malgré
tout qu'il s'agit de la fenêtre "objet" et non de la fenêtre "excel", (nommés
ainsi pour plus de simplicité)


Ça restera un mystère.
Mais effectivement la forme (shape) est verrouillée.

--
A+






Avatar
Manu91
Circé, Anacoluthe, Bonjour,

Non, la solution de masquer la cellule n'est pas envisageable,
effectivement, je et nous (les autres intervenants sur le devis, mon patron,
mon assistante, les autres commerciaux) doivent d'un seul coup d'oeil lorsque
le devis ressort quelques mois après sa réalisation, pouvoir visualiser
immédiatement le montant de la remise effectuée.

Le fait de masquer la cellule voudrait dire que les utilisateurs vont devoir
penser à la demasquer et ça....

Alors que la deuxième feuille ne pose pas ce problème la, en effet lorsque
tu double click sur le tableau, la deuxième feuille (appelée "calculs") est
directement visible, et donc plus "interractive"...

Manuel




Hello anacoluthe !!!

De retour, enfin !!:D


Bonjour Circé, Manu91, Geo et les autres !

'Circé' nous a écrit ...
Mais, dans ce cas, pourquoi, dans Excel, ne pas masquer la ligne à ne pas
insérer dans Word ?


Absolument : il faut le faire dans Excel :-)


Voui, paske depuis le début, je pense qu'il ne s'agit pas d'un problème
de redimensionnement, mais de choisir les cellules à incorporer dans
Word.

Tu vas avoir droit à la bise de Madame Manu91... Moi, j'aurais préféré
la bise de Manu, mais ce n'etait pas prévu dans le règlement du
concours !!! :D))))

Circé
http://faqword.free.fr

Un objet incorporé de classtype Excel doit être manipulé en vba par Excel
et non par Word. On passe de l'un à l'autre ainsi :

Dim objOLE As Word.OLEFormat ' objet OLE dans WORD
Dim objXL As Excel.Workbook ' Objet EXCEL

Set objOLE = ActiveDocument.InlineShapes(1).OLEFormat
objOLE.Activate
Set objXL = objOLE.Object

Ensuite on programme tout l'objet dans le vba d'EXCEL :
With objXL.ActiveSheet
.Cells(1, 1).Value = "Bonjour à EXCEL !"
...
End With

Anacoluthe
« Si tout ici-bas était excellent, il n’y aurait plus rien d’excellent. »
- Denis DIDEROT








Avatar
Circ
Bonjour Manu91

Masquer une cellule peut se faire via le vba, et donc afficher aussi...

Je ne sais pas exactement jusqu'où va ton code, mais s'il se poursuit
jusqu'à la création du PDF, on peut imaginer de réafficher la ligne
après avoir créé le pdf...

Circé

Manu91 vient de nous annoncer :
Circé, Anacoluthe, Bonjour,

Non, la solution de masquer la cellule n'est pas envisageable,
effectivement, je et nous (les autres intervenants sur le devis, mon patron,
mon assistante, les autres commerciaux) doivent d'un seul coup d'oeil lorsque
le devis ressort quelques mois après sa réalisation, pouvoir visualiser
immédiatement le montant de la remise effectuée.

Le fait de masquer la cellule voudrait dire que les utilisateurs vont devoir
penser à la demasquer et ça....

Alors que la deuxième feuille ne pose pas ce problème la, en effet lorsque
tu double click sur le tableau, la deuxième feuille (appelée "calculs") est
directement visible, et donc plus "interractive"...

Manuel




Hello anacoluthe !!!

De retour, enfin !!:D


Bonjour Circé, Manu91, Geo et les autres !

'Circé' nous a écrit ...
Mais, dans ce cas, pourquoi, dans Excel, ne pas masquer la ligne à ne pas
insérer dans Word ?


Absolument : il faut le faire dans Excel :-)


Voui, paske depuis le début, je pense qu'il ne s'agit pas d'un problème
de redimensionnement, mais de choisir les cellules à incorporer dans
Word.

Tu vas avoir droit à la bise de Madame Manu91... Moi, j'aurais préféré
la bise de Manu, mais ce n'etait pas prévu dans le règlement du
concours !!! :D))))

Circé
http://faqword.free.fr

Un objet incorporé de classtype Excel doit être manipulé en vba par Excel
et non par Word. On passe de l'un à l'autre ainsi :

Dim objOLE As Word.OLEFormat ' objet OLE dans WORD
Dim objXL As Excel.Workbook ' Objet EXCEL

Set objOLE = ActiveDocument.InlineShapes(1).OLEFormat
objOLE.Activate
Set objXL = objOLE.Object

Ensuite on programme tout l'objet dans le vba d'EXCEL :
With objXL.ActiveSheet
.Cells(1, 1).Value = "Bonjour à EXCEL !"
...
End With

Anacoluthe
« Si tout ici-bas était excellent, il n’y aurait plus rien d’excellent. »
- Denis DIDEROT










Avatar
Geo

Masquer une cellule peut se faire via le vba, et donc afficher aussi...


Hé non, enfin il me semble, vu les milliers d'essais que j'ai fait, je
ne sais plus trop.

Quand on insère l'objet Excel, il fait 7 colonnes et 10 lignes.
On passe par le couloir OLE pour modifier le document Excel et on
réduit l'affichage dans Excel. C'est OK.
On voit même la fenêtre se réduire dans Word et... revenir à l'état
initial.
La seule chose qu'on arrive à faire c'est réduire la place occupée sur
le document Word, pas le nombre de colonnes de la feuille Excel.

--
A+

Avatar
Manu91
re Circé,

Effectivement, cacher la cellule pour convertir en pdf, la démasquer après
et la recacher lorsque tu veux réimprimer le devis quelques mois plus tard
(si, si .. ça m'arrive assez souvent même, lorsque je fais des modifications
et que je sors des indices du même devis...)
tout ça peut se faire par programmation...
En fait TOUT peux se faire par programmation SAUF augmenter ou diminuer le
nombre de cellules visibles dans la fenêtre Excel !!! lol !

A propos, pour la bise (voir plus bas), on peut toujours s'arranger !!!
(maintenant que j'ai une solution ;-D !)




Bonjour Manu91

Masquer une cellule peut se faire via le vba, et donc afficher aussi...

Je ne sais pas exactement jusqu'où va ton code, mais s'il se poursuit
jusqu'à la création du PDF, on peut imaginer de réafficher la ligne
après avoir créé le pdf...

Circé

Manu91 vient de nous annoncer :
Circé, Anacoluthe, Bonjour,

Non, la solution de masquer la cellule n'est pas envisageable,
effectivement, je et nous (les autres intervenants sur le devis, mon patron,
mon assistante, les autres commerciaux) doivent d'un seul coup d'oeil lorsque
le devis ressort quelques mois après sa réalisation, pouvoir visualiser
immédiatement le montant de la remise effectuée.

Le fait de masquer la cellule voudrait dire que les utilisateurs vont devoir
penser à la demasquer et ça....

Alors que la deuxième feuille ne pose pas ce problème la, en effet lorsque
tu double click sur le tableau, la deuxième feuille (appelée "calculs") est
directement visible, et donc plus "interractive"...

Manuel




Hello anacoluthe !!!

De retour, enfin !!:D


Bonjour Circé, Manu91, Geo et les autres !

'Circé' nous a écrit ...
Mais, dans ce cas, pourquoi, dans Excel, ne pas masquer la ligne à ne pas
insérer dans Word ?


Absolument : il faut le faire dans Excel :-)


Voui, paske depuis le début, je pense qu'il ne s'agit pas d'un problème
de redimensionnement, mais de choisir les cellules à incorporer dans
Word.

Tu vas avoir droit à la bise de Madame Manu91... Moi, j'aurais préféré
la bise de Manu, mais ce n'etait pas prévu dans le règlement du
concours !!! :D))))

Circé
http://faqword.free.fr

Un objet incorporé de classtype Excel doit être manipulé en vba par Excel
et non par Word. On passe de l'un à l'autre ainsi :

Dim objOLE As Word.OLEFormat ' objet OLE dans WORD
Dim objXL As Excel.Workbook ' Objet EXCEL

Set objOLE = ActiveDocument.InlineShapes(1).OLEFormat
objOLE.Activate
Set objXL = objOLE.Object

Ensuite on programme tout l'objet dans le vba d'EXCEL :
With objXL.ActiveSheet
.Cells(1, 1).Value = "Bonjour à EXCEL !"
...
End With

Anacoluthe
« Si tout ici-bas était excellent, il n’y aurait plus rien d’excellent. »
- Denis DIDEROT















Avatar
Manu91
Circé, Géo, Bonjour...

Je pense, mais je peux me tromper, que Circé ne voulait pas dire une
cellule, mais une ligne (c comme ça en tous cas que j'ai compris),
Et en effet, tu peux très bien masquer une ligne en VBA (en mettant sa
hauteur à 0 par ex.),
Ensuite quand tu ouvre ta fenêtre objet word, la ligne y est bien, mais avec
une hauteur à 0... donc non visible

Manu




Masquer une cellule peut se faire via le vba, et donc afficher aussi...


Hé non, enfin il me semble, vu les milliers d'essais que j'ai fait, je
ne sais plus trop.

Quand on insère l'objet Excel, il fait 7 colonnes et 10 lignes.
On passe par le couloir OLE pour modifier le document Excel et on
réduit l'affichage dans Excel. C'est OK.
On voit même la fenêtre se réduire dans Word et... revenir à l'état
initial.
La seule chose qu'on arrive à faire c'est réduire la place occupée sur
le document Word, pas le nombre de colonnes de la feuille Excel.

--
A+






Avatar
Geo

Circé, Géo, Bonjour...

Je pense, mais je peux me tromper, que Circé ne voulait pas dire une
cellule, mais une ligne (c comme ça en tous cas que j'ai compris),
Et en effet, tu peux très bien masquer une ligne en VBA (en mettant sa
hauteur à 0 par ex.),
Ensuite quand tu ouvre ta fenêtre objet word, la ligne y est bien, mais avec
une hauteur à 0... donc non visible


D'accord, je ne l'avais pas vu sous cet angle.
C'est une autre solution de contournement.

Et comment on fait pour en ajouter ? :')

Mais c'est juste par esprit de contradiction, car je ne me remets plus
sur le sujet tant que quelqu'un ne donne pas la solution.

--
A+

Avatar
Circé
Bonjour à tous,

Manu91 a formulé ce samedi :
Circé, Géo, Bonjour...

Je pense, mais je peux me tromper, que Circé ne voulait pas dire une
cellule, mais une ligne (c comme ça en tous cas que j'ai compris),
Et en effet, tu peux très bien masquer une ligne en VBA (en mettant sa
hauteur à 0 par ex.),


Ouppsss.... Oui bien sûr je voulais parler de la ligne... D'ailleurs,
pas mettre à 0 mais cacher, car cette fonction existe :

Selection.EntireRow.Hidden = True

Pour faire réapparaître :
Selection.EntireRow.Hidden = false


Ensuite quand tu ouvre ta fenêtre objet word, la ligne y est bien, mais avec
une hauteur à 0... donc non visible


Voiloù ! c'est ce que j'insinuais... ;) Merci pour avoir corrigé...

Circé

Manu




Masquer une cellule peut se faire via le vba, et donc afficher aussi...


Hé non, enfin il me semble, vu les milliers d'essais que j'ai fait, je
ne sais plus trop.

Quand on insère l'objet Excel, il fait 7 colonnes et 10 lignes.
On passe par le couloir OLE pour modifier le document Excel et on
réduit l'affichage dans Excel. C'est OK.
On voit même la fenêtre se réduire dans Word et... revenir à l'état
initial.
La seule chose qu'on arrive à faire c'est réduire la place occupée sur
le document Word, pas le nombre de colonnes de la feuille Excel.

--
A+








1 2 3