Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir
qu'un)
Merci pour vos reponses
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Oliv'
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a nice day Oliv' Pour me joindre : http://cerbermail.com/?V8r2o1YHl4 les sites références: Excel :http://www.excelabo.net http://xcell05.free.fr/ http://dj.joss.free.fr/ http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/ Word : http://faqword.free.fr/ Outlook :http://faq.outlook.free.fr/ Sql :http://sqlpro.developpez.com/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir
qu'un)
Merci pour vos reponses
Essaye avec cela
Sub test()
Set oApp = Application
On Error Resume Next
toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType
On Error GoTo 0
If toto = "Excel.Sheet.8" Then
MsgBox "objet ExCel trouvé"
End if
End Sub
au fait Word c'est plutot microsoft.public.fr.Word
--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook :http://faq.outlook.free.fr/
Sql :http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a nice day Oliv' Pour me joindre : http://cerbermail.com/?V8r2o1YHl4 les sites références: Excel :http://www.excelabo.net http://xcell05.free.fr/ http://dj.joss.free.fr/ http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/ Word : http://faqword.free.fr/ Outlook :http://faq.outlook.free.fr/ Sql :http://sqlpro.developpez.com/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JLuc
*Bonjour Oliv'*, Merci pour la réponse, je vais essayer çà. Je gère les documents Word contenant des objets Excel à partir de ... Escel :-?
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
*Bonjour Oliv'*,
Merci pour la réponse, je vais essayer çà.
Je gère les documents Word contenant des objets Excel à partir de ...
Escel :-?
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir
qu'un)
Merci pour vos reponses
Essaye avec cela
Sub test()
Set oApp = Application
On Error Resume Next
toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType
On Error GoTo 0
If toto = "Excel.Sheet.8" Then
MsgBox "objet ExCel trouvé"
End if
End Sub
au fait Word c'est plutot microsoft.public.fr.Word
--
*Bonjour Oliv'*, Merci pour la réponse, je vais essayer çà. Je gère les documents Word contenant des objets Excel à partir de ... Escel :-?
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
JLuc
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
*Bonjour Oliv'*,
Raté !
Lorsque j'éxécute le code, j'ai l'erreur :
Erreur 5941
Le membre de la collection requis n'existe pas.
C'est pour éviter cette erreur que je voudrais pouvoir tester son
existance ou pas
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir
qu'un)
Merci pour vos reponses
Essaye avec cela
Sub test()
Set oApp = Application
On Error Resume Next
toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType
On Error GoTo 0
If toto = "Excel.Sheet.8" Then
MsgBox "objet ExCel trouvé"
End if
End Sub
au fait Word c'est plutot microsoft.public.fr.Word
--
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Clément Marcotte
Bonjour,
Pas testé.
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant de sélectionner.
Cela devrait donner quelque chose de ce genre-là: nombre = oApp.ActiveDocument.InlineShapes.count if nombre = 1 then oApp.ActiveDocument.InlineShapes(1).Activate = True elseif nombre = 0 msgbox "Shape non disponible" else msgbox "trop de shapes" end if
"JLuc" a écrit dans le message de news:
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Bonjour,
Pas testé.
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant
de sélectionner.
Cela devrait donner quelque chose de ce genre-là:
nombre = oApp.ActiveDocument.InlineShapes.count
if nombre = 1 then
oApp.ActiveDocument.InlineShapes(1).Activate = True
elseif nombre = 0
msgbox "Shape non disponible"
else
msgbox "trop de shapes"
end if
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.e4767d629e3f8df7.40692@free.fr.ns...
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un)
Merci pour vos reponses
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant de sélectionner.
Cela devrait donner quelque chose de ce genre-là: nombre = oApp.ActiveDocument.InlineShapes.count if nombre = 1 then oApp.ActiveDocument.InlineShapes(1).Activate = True elseif nombre = 0 msgbox "Shape non disponible" else msgbox "trop de shapes" end if
"JLuc" a écrit dans le message de news:
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
JLuc
*Bonjour Clément Marcotte*, Fantastique, comment n'avais-je pas penser à les compter ! Tu m'a enlever une grosse épine du pied :') Un grand merci à toi ainsi qu'a Oliv'
Bonjour,
Pas testé.
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant de sélectionner.
Cela devrait donner quelque chose de ce genre-là: nombre = oApp.ActiveDocument.InlineShapes.count if nombre = 1 then oApp.ActiveDocument.InlineShapes(1).Activate = True elseif nombre = 0 msgbox "Shape non disponible" else msgbox "trop de shapes" end if
"JLuc" a écrit dans le message de news:
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
*Bonjour Clément Marcotte*,
Fantastique, comment n'avais-je pas penser à les compter !
Tu m'a enlever une grosse épine du pied :')
Un grand merci à toi ainsi qu'a Oliv'
Bonjour,
Pas testé.
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant de
sélectionner.
Cela devrait donner quelque chose de ce genre-là:
nombre = oApp.ActiveDocument.InlineShapes.count
if nombre = 1 then
oApp.ActiveDocument.InlineShapes(1).Activate = True
elseif nombre = 0
msgbox "Shape non disponible"
else
msgbox "trop de shapes"
end if
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.e4767d629e3f8df7.40692@free.fr.ns...
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document Word,
seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un)
Merci pour vos reponses
*Bonjour Clément Marcotte*, Fantastique, comment n'avais-je pas penser à les compter ! Tu m'a enlever une grosse épine du pied :') Un grand merci à toi ainsi qu'a Oliv'
Bonjour,
Pas testé.
Essaie de voir si tu ne pourrais pas retrouver le nombre de "shapes" avant de sélectionner.
Cela devrait donner quelque chose de ce genre-là: nombre = oApp.ActiveDocument.InlineShapes.count if nombre = 1 then oApp.ActiveDocument.InlineShapes(1).Activate = True elseif nombre = 0 msgbox "Shape non disponible" else msgbox "trop de shapes" end if
"JLuc" a écrit dans le message de news:
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Oliv'
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce problème. si tu executes à partir de excel. tu dois avoir un truc du type dim oApp as object oApp=createObject("Word.application")
Oliv'
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
*Bonjour Oliv'*,
Raté !
Lorsque j'éxécute le code, j'ai l'erreur :
Erreur 5941
Le membre de la collection requis n'existe pas.
C'est pour éviter cette erreur que je voudrais pouvoir tester son
existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce
problème.
si tu executes à partir de excel. tu dois avoir un truc du type
dim oApp as object
oApp=createObject("Word.application")
Oliv'
Bonjour les lecteurs,
J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ
Je voudrais tester la présence d'un objet Excel dans un document
Word, seulement je ne vois pas comment faire. J'ai essayé çà :
*If oApp.ActiveDocument.InlineShapes(1).Activate = True Then*
Mais ca me met une erreur !
Que faut il faire pour tester sa présense ? (il ne peut y en avoir
qu'un)
Merci pour vos reponses
Essaye avec cela
Sub test()
Set oApp = Application
On Error Resume Next
toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType
On Error GoTo 0
If toto = "Excel.Sheet.8" Then
MsgBox "objet ExCel trouvé"
End if
End Sub
au fait Word c'est plutot microsoft.public.fr.Word
--
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce problème. si tu executes à partir de excel. tu dois avoir un truc du type dim oApp as object oApp=createObject("Word.application")
Oliv'
Bonjour les lecteurs, J'ai un petit soucis, j'espère que l'un de vous aura la solution :oÞ Je voudrais tester la présence d'un objet Excel dans un document Word, seulement je ne vois pas comment faire. J'ai essayé çà : *If oApp.ActiveDocument.InlineShapes(1).Activate = True Then* Mais ca me met une erreur ! Que faut il faire pour tester sa présense ? (il ne peut y en avoir qu'un) Merci pour vos reponses
Essaye avec cela Sub test() Set oApp = Application On Error Resume Next toto = oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType On Error GoTo 0 If toto = "Excel.Sheet.8" Then MsgBox "objet ExCel trouvé" End if End Sub
au fait Word c'est plutot microsoft.public.fr.Word --
JLuc
Oliv' avait soumis l'idée :
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce problème. si tu executes à partir de excel. tu dois avoir un truc du type dim oApp as object oApp=createObject("Word.application")
Oliv' En fait, voila ma procedure complete. Comme je l'ai signaler à Clement,
son codage marche. il suffisait que je compte le nombre d'objet dans le document : si au moins un, verifier que c'est un objet Excel (grace a ton code). Du coup, tout va bien :oÞ Merci encore pour tes reponses
Procedure : Dim oApp As Word.Application, doc As Word.Document Dim MyXL As Excel.Workbook Dim Fournisseur As String Dim ObjetFax As String Dim DateFax As Date Dim NumFax As Long
On Error Resume Next Application.ScreenUpdating = False chemin = "E:FichiersJeanlucWordFax" nf = Dir(chemin & "*.doc") Set oApp = CreateObject("Word.Application") oApp.Visible = False Do While nf <> "" NumFax = Val(Mid(nf, 4, 6)) Flag = False For x = 1 To Range("A65536").End(xlUp).Row If NumFax = Cells(x, 1) Then Flag = True Next x If Not Flag Then Set mondoc = oApp.documents.Open(chemin & nf) If Err <> 0 Then MsgBox "Problème d'ouverture !!" Exit Sub End If On Error GoTo 0 ' Annule la gestion d'erreur oApp.Selection.Goto What:=wdGoToBookmark, Name:="societe" oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend Fournisseur = oApp.Selection oApp.Selection.Goto What:=wdGoToBookmark, Name:="date" oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend DateFax = oApp.Selection oApp.Selection.Goto What:=wdGoToBookmark, Name:="objet" oApp.Selection.MoveRight unit:=wdWord, Extend:=wdExtend ObjetFax = oApp.Selection '************************************************ If ObjetFax = "Commande " Then derlig = Worksheets("Recap").Range("A65536").End(xlUp).Row On Error GoTo 0 If oApp.ActiveDocument.InlineShapes.Count > 0 Then If oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType = "Excel.Sheet.8" Then oApp.ActiveDocument.InlineShapes(1).Activate Set MyXL = oApp.ActiveDocument.InlineShapes(1).OLEFormat.Object With MyXL.ActiveSheet tblo = .Range("A2:E" & .Range("A20").End(xlUp).Row) '.Value End With For x = 1 To UBound(tblo) For y = 1 To 5 With ThisWorkbook.Worksheets("Recap") .Cells(derlig + x, 1) = NumFax .Cells(derlig + x, 2) = DateFax .Cells(derlig + x, 3) = Fournisseur .Cells(derlig + x, y + 3) = tblo(x, y) End With Next y Next x Set MyXL = Nothing End If End If End If oApp.ActiveDocument.Close False End If nf = Dir Loop oApp.Quit Set oApp = Nothing Application.ScreenUpdating = True End Sub
-- JLuc
Oliv' avait soumis l'idée :
*Bonjour Oliv'*,
Raté !
Lorsque j'éxécute le code, j'ai l'erreur :
Erreur 5941
Le membre de la collection requis n'existe pas.
C'est pour éviter cette erreur que je voudrais pouvoir tester son
existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce
problème.
si tu executes à partir de excel. tu dois avoir un truc du type
dim oApp as object
oApp=createObject("Word.application")
Oliv'
En fait, voila ma procedure complete. Comme je l'ai signaler à Clement,
son codage marche. il suffisait que je compte le nombre d'objet dans le
document : si au moins un, verifier que c'est un objet Excel (grace a
ton code). Du coup, tout va bien :oÞ
Merci encore pour tes reponses
Procedure :
Dim oApp As Word.Application, doc As Word.Document
Dim MyXL As Excel.Workbook
Dim Fournisseur As String
Dim ObjetFax As String
Dim DateFax As Date
Dim NumFax As Long
On Error Resume Next
Application.ScreenUpdating = False
chemin = "E:FichiersJeanlucWordFax"
nf = Dir(chemin & "*.doc")
Set oApp = CreateObject("Word.Application")
oApp.Visible = False
Do While nf <> ""
NumFax = Val(Mid(nf, 4, 6))
Flag = False
For x = 1 To Range("A65536").End(xlUp).Row
If NumFax = Cells(x, 1) Then Flag = True
Next x
If Not Flag Then
Set mondoc = oApp.documents.Open(chemin & nf)
If Err <> 0 Then
MsgBox "Problème d'ouverture !!"
Exit Sub
End If
On Error GoTo 0 ' Annule la gestion d'erreur
oApp.Selection.Goto What:=wdGoToBookmark, Name:="societe"
oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend
oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1,
Extend:=wdExtend
Fournisseur = oApp.Selection
oApp.Selection.Goto What:=wdGoToBookmark, Name:="date"
oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend
oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1,
Extend:=wdExtend
DateFax = oApp.Selection
oApp.Selection.Goto What:=wdGoToBookmark, Name:="objet"
oApp.Selection.MoveRight unit:=wdWord, Extend:=wdExtend
ObjetFax = oApp.Selection
'************************************************
If ObjetFax = "Commande " Then
derlig = Worksheets("Recap").Range("A65536").End(xlUp).Row
On Error GoTo 0
If oApp.ActiveDocument.InlineShapes.Count > 0 Then
If oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType =
"Excel.Sheet.8" Then
oApp.ActiveDocument.InlineShapes(1).Activate
Set MyXL =
oApp.ActiveDocument.InlineShapes(1).OLEFormat.Object
With MyXL.ActiveSheet
tblo = .Range("A2:E" & .Range("A20").End(xlUp).Row) '.Value
End With
For x = 1 To UBound(tblo)
For y = 1 To 5
With ThisWorkbook.Worksheets("Recap")
.Cells(derlig + x, 1) = NumFax
.Cells(derlig + x, 2) = DateFax
.Cells(derlig + x, 3) = Fournisseur
.Cells(derlig + x, y + 3) = tblo(x, y)
End With
Next y
Next x
Set MyXL = Nothing
End If
End If
End If
oApp.ActiveDocument.Close False
End If
nf = Dir
Loop
oApp.Quit
Set oApp = Nothing
Application.ScreenUpdating = True
End Sub
*Bonjour Oliv'*, Raté ! Lorsque j'éxécute le code, j'ai l'erreur : Erreur 5941 Le membre de la collection requis n'existe pas. C'est pour éviter cette erreur que je voudrais pouvoir tester son existance ou pas
oui mais avec la gestion d'erreur tu ne devrais justement pas avoir ce problème. si tu executes à partir de excel. tu dois avoir un truc du type dim oApp as object oApp=createObject("Word.application")
Oliv' En fait, voila ma procedure complete. Comme je l'ai signaler à Clement,
son codage marche. il suffisait que je compte le nombre d'objet dans le document : si au moins un, verifier que c'est un objet Excel (grace a ton code). Du coup, tout va bien :oÞ Merci encore pour tes reponses
Procedure : Dim oApp As Word.Application, doc As Word.Document Dim MyXL As Excel.Workbook Dim Fournisseur As String Dim ObjetFax As String Dim DateFax As Date Dim NumFax As Long
On Error Resume Next Application.ScreenUpdating = False chemin = "E:FichiersJeanlucWordFax" nf = Dir(chemin & "*.doc") Set oApp = CreateObject("Word.Application") oApp.Visible = False Do While nf <> "" NumFax = Val(Mid(nf, 4, 6)) Flag = False For x = 1 To Range("A65536").End(xlUp).Row If NumFax = Cells(x, 1) Then Flag = True Next x If Not Flag Then Set mondoc = oApp.documents.Open(chemin & nf) If Err <> 0 Then MsgBox "Problème d'ouverture !!" Exit Sub End If On Error GoTo 0 ' Annule la gestion d'erreur oApp.Selection.Goto What:=wdGoToBookmark, Name:="societe" oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend Fournisseur = oApp.Selection oApp.Selection.Goto What:=wdGoToBookmark, Name:="date" oApp.Selection.EndKey unit:=wdLine, Extend:=wdExtend oApp.Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend DateFax = oApp.Selection oApp.Selection.Goto What:=wdGoToBookmark, Name:="objet" oApp.Selection.MoveRight unit:=wdWord, Extend:=wdExtend ObjetFax = oApp.Selection '************************************************ If ObjetFax = "Commande " Then derlig = Worksheets("Recap").Range("A65536").End(xlUp).Row On Error GoTo 0 If oApp.ActiveDocument.InlineShapes.Count > 0 Then If oApp.ActiveDocument.InlineShapes(1).OLEFormat.ClassType = "Excel.Sheet.8" Then oApp.ActiveDocument.InlineShapes(1).Activate Set MyXL = oApp.ActiveDocument.InlineShapes(1).OLEFormat.Object With MyXL.ActiveSheet tblo = .Range("A2:E" & .Range("A20").End(xlUp).Row) '.Value End With For x = 1 To UBound(tblo) For y = 1 To 5 With ThisWorkbook.Worksheets("Recap") .Cells(derlig + x, 1) = NumFax .Cells(derlig + x, 2) = DateFax .Cells(derlig + x, 3) = Fournisseur .Cells(derlig + x, y + 3) = tblo(x, y) End With Next y Next x Set MyXL = Nothing End If End If End If oApp.ActiveDocument.Close False End If nf = Dir Loop oApp.Quit Set oApp = Nothing Application.ScreenUpdating = True End Sub