OVH Cloud OVH Cloud

Traitement d'un objrt excel dans un document

10 réponses
Avatar
JLuc
Bonsoir les lecteurs,
Une autre petite question :oÞ :
Dans mon document, j'ai un objet excel.
Comment, en vba, pouvoir acceder aux donnees qu'il contient ?
Il faudrait que je recupere les donnees des cellules de A2 à D11 pour
les retraitees, deviner...., avec excel :-?
Merci pour vos reponses

--
JLuc

10 réponses

Avatar
Anacoluthe
Bonjour !

'JLuc' nous a écrit ...
Une autre petite question :oÞ :
Dans mon document, j'ai un objet excel.
Comment, en vba, pouvoir acceder aux donnees qu'il contient ?


Ça dépend si l'objet est lié ou incorporé...

Si l'objet est lié, il suffit de remonter son chemin et l'ouvrir.
Si l'objet est incorporé (Embed) il faut d'abord l'activer
puis simplement l'instancier comme objet Excel.

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD

Avatar
JLuc
Bonsoir Anacoluthe,

Ça dépend si l'objet est lié ou incorporé...
Apparement, il est incorpore.

Voila le code ecrit pour inserer l'objet excel :

selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", _
FileName:= "FAX.xls", LinkToFile:úlse, DisplayAsIcon:úlse

Si l'objet est incorporé (Embed) il faut d'abord l'activer
puis simplement l'instancier comme objet Excel.
Et comment fait on pour instancier l'objet ?

Je ne trouve meme pas de propriete pour cet objet :-?
Merci d'avance pour un petit aiguillage

--
JLuc

Avatar
JLuc
JLuc a exposé le 14/02/2006 :
Bonsoir Anacoluthe,

Ça dépend si l'objet est lié ou incorporé...
Apparement, il est incorpore.

Voila le code ecrit pour inserer l'objet excel :


Excuse
selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", _
FileName:= "FAX.xls", LinkToFile:úlse, DisplayAsIcon:úlse

Si l'objet est incorporé (Embed) il faut d'abord l'activer
puis simplement l'instancier comme objet Excel.
Et comment fait on pour instancier l'objet ?

et en premier pour l'activer :oÞ

Je ne trouve meme pas de propriete pour cet objet :-?
Merci d'avance pour un petit aiguillage



--
JLuc


Avatar
Anacoluthe
Bonjour !

'JLuc' nous a écrit ...
Apparement, il est incorpore.
Voila le code ecrit pour inserer l'objet excel :
selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", _
FileName:= "FAX.xls", LinkToFile:úlse, DisplayAsIcon:úlse
Et comment fait on pour instancier l'objet ?


Ben avec Dim et Set comme d'hab pour tout objet :

Dim monObjetXL as Excel.Workbook
Selection.InlineShapes(1).Activate
Set monObjetXL = Selection.InlineShapes(1).OLEFormat.Object

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD

Avatar
JLuc
Un grand merci Anacoluthe,
Avec ca, je pense pouvoir me debrouiller pour la suite :')
Au plaisir

Bonjour !

'JLuc' nous a écrit ...
Apparement, il est incorpore.
Voila le code ecrit pour inserer l'objet excel :
selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", _
FileName:= "FAX.xls", LinkToFile:úlse, DisplayAsIcon:úlse
Et comment fait on pour instancier l'objet ?


Ben avec Dim et Set comme d'hab pour tout objet :

Dim monObjetXL as Excel.Workbook
Selection.InlineShapes(1).Activate
Set monObjetXL = Selection.InlineShapes(1).OLEFormat.Object

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD



--
JLuc


Avatar
JLuc
Desole Anacoluthe,
J'ai essaye les lignes de code ci dessous
x = oApp.Selection.InlineShapes.Count 'x=0
oApp.Selection.InlineShapes(x).Activate 'erreur
Si je mets oApp devant => erreur 5941 "le membre de la collection
requis n'existe pas" (avec 1 au lieu de x, meme chose)
Si je ne mets pas oApp => erreur 438 "propriete ou methode non geree
par cet objet"
Je suis desole, mais la, je bloque

Anacoluthe avait écrit le 14/02/2006 :
Bonjour !

'JLuc' nous a écrit ...
Apparement, il est incorpore.
Voila le code ecrit pour inserer l'objet excel :
selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", _
FileName:= "FAX.xls", LinkToFile:úlse, DisplayAsIcon:úlse
Et comment fait on pour instancier l'objet ?


Ben avec Dim et Set comme d'hab pour tout objet :

Dim monObjetXL as Excel.Workbook
Selection.InlineShapes(1).Activate
Set monObjetXL = Selection.InlineShapes(1).OLEFormat.Object

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD



--
JLuc


Avatar
Anacoluthe
Bonjour !

'JLuc' nous a écrit ...
Desole Anacoluthe,
J'ai essaye les lignes de code ci dessous
x = oApp.Selection.InlineShapes.Count 'x=0
oApp.Selection.InlineShapes(x).Activate 'erreur
Si je mets oApp devant => erreur 5941 "le membre de la collection requis
n'existe pas" (avec 1 au lieu de x, meme chose)
Si je ne mets pas oApp => erreur 438 "propriete ou methode non geree par
cet objet"
Je suis desole, mais la, je bloque


Votre sélection est out : elle doit contenir au moins une InlineShape
(ici clairement zéro!) il faut ensuite que cette InlineShape soit de
type objet-OLE (wdInlineShapeEmbeddedOLEObject) sinon Activate donne
une erreur et enfin il faut que cet objet soit de ClassType Excel
sinon ça va pas aller non plus dans l'instanciation Excel !
Bref mon petit bout de code code ne marche que sous un certain nombre
de conditions que je vous recommande de vérifier dans le vôtre :-) ))
Bon courage.

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD

Avatar
JLuc
J'ai testé le code directement sur word, en remplacant Selection par
ActiveDocument. Et la, ca marche donc il faut que je trouve comment
l'ecrire avec vb excel. Je pense que c'est la que se trouve le
solution, non ?

Anacoluthe a présenté l'énoncé suivant :
Bonjour !

'JLuc' nous a écrit ...
Desole Anacoluthe,
J'ai essaye les lignes de code ci dessous
x = oApp.Selection.InlineShapes.Count 'x=0
oApp.Selection.InlineShapes(x).Activate 'erreur
Si je mets oApp devant => erreur 5941 "le membre de la collection requis
n'existe pas" (avec 1 au lieu de x, meme chose)
Si je ne mets pas oApp => erreur 438 "propriete ou methode non geree par
cet objet"
Je suis desole, mais la, je bloque


Votre sélection est out : elle doit contenir au moins une InlineShape
(ici clairement zéro!) il faut ensuite que cette InlineShape soit de
type objet-OLE (wdInlineShapeEmbeddedOLEObject) sinon Activate donne
une erreur et enfin il faut que cet objet soit de ClassType Excel
sinon ça va pas aller non plus dans l'instanciation Excel !
Bref mon petit bout de code code ne marche que sous un certain nombre
de conditions que je vous recommande de vérifier dans le vôtre :-) ))
Bon courage.

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD



--
JLuc


Avatar
Anacoluthe
Bonjour !

'JLuc' nous a écrit ...
J'ai testé le code directement sur word, en remplacant Selection par
ActiveDocument. Et la, ca marche donc il faut que je trouve comment
l'ecrire avec vb excel. Je pense que c'est la que se trouve le solution,


Ben dans Excel ça vous donnera simplement oApp.ActiveDocument
si oApp est votre instance d'application Word !
Oui ça commence à rentrer :-D )))

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD

Avatar
JLuc
Ben dans Excel ça vous donnera simplement oApp.ActiveDocument
C'est exactement ce que j'etais en train d'essayer :oÞ

Apparement ca passe mais il faut maintenant que je recupere les donnees
!
Je pense pouvoir enfin m'en sortir. Merci du GRAND coup de main ;-)

si oApp est votre instance d'application Word !
Oui ça commence à rentrer :-D )))

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD



--
JLuc