Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser.
Le problème était sur les variable wdSeekCurrentPageHeader et
wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut
mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne
selectionne que l'objet principale (et non pas les zones de text). As-tu une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut
faire un truc dans le genre):
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
'WordObj.ScreenUpdating = False
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9
For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes
On Error Resume Next
's.Select
s.TextFrame.TextRange = "aaa"
Next
'WordObj.Selection.HeaderFooter.Shapes(1).Select
WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccje58$n1e$1@news-reader5.wanadoo.fr...
> Re ;-)
>
> c'est peut-être pour toi WordFile et non WordObj...
>
> désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je n'ai
> pas testé avec cette hisoire de nomenclature ...
> --
>
> Bien cordialement,
>
> Joël GARBE
> www.joelgarbe.fr
> "Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
> news:%23pSP%23SOZEHA.3112@TK2MSFTNGP09.phx.gbl...
> > J'ai une erreur sur la ligne : For Each s In
> > WordObj.Selection.HeaderFooter.Shapes
> >
> > "Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
> > news:ccja4t$at5$1@news-reader5.wanadoo.fr...
> > > Bonjour EMCY !
> > >
> > > Essaye donc un peu !!!
> > >
> > > For Each s In WordFile.Shapes
> > > On Error Resume Next
> > > s.TextFrame.TextRange = "aaa"
> > > Next
> > >
> > > WordObj.ActiveWindow.ActivePane.View.SeekView =
wdSeekCurrentPageHeader
> > > For Each s In WordObj.Selection.HeaderFooter.Shapes
> > > On Error Resume Next
> > > s.TextFrame.TextRange = "aaa"
> > > Next
> > > WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
> > >
> > > A bientôt !!!
> > > --
> > >
> > > Bien cordialement,
> > >
> > > Joël GARBE
> > > www.joelgarbe.fr
> > > "Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
> > > news:eIUtXPMZEHA.2388@TK2MSFTNGP09.phx.gbl...
> > > > Bonjours,
> > > >
> > > > A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins de
> > zones
> > > de
> > > > text en arrière plan (entête et pied de page) et en avant plan (là
ou
> on
> > > > ecris normalement)
> > > >
> > > > J'arrive à remplir les zones de text en avant plan mais pas en
arrière
> > > plan.
> > > > Quelqu'un a-t-il une solution ?
> > > >
> > > > voici ma macro pour remplir en avant plan :
> > > >
> > > > Sub Word()
> > > >
> > > > Dim WordObj As Object
> > > > Dim WordFile As Object
> > > >
> > > > Set WordObj = CreateObject("Word.Application")
> > > >
> > > > WordObj.Visible = True
> > > > Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
> > > > nomenclature Word
> > > >
> > > > For Each s In WordFile.Shapes
> > > > On Error Resume Next
> > > > s.TextFrame.TextRange = "aaa"
> > > > Next
> > > >
> > > > Set WordFile = Nothing
> > > > Set WordObj = Nothing
> > > >
> > > > End Sub
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
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
Joel
Bonsoir EMCY,
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à la place des questionneurs, il arrive quelquefois que la question reste en suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras traduire à partir de ton appli...
Sub TexteEnZone() Dim ZoneText As Shape For Each ZoneText In ActiveDocument.Shapes If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si l'objet est "Groupé" ou non ZoneText.TextFrame.TextRange = "aaa" Else Dim SousZOneText As Shape For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZOneText.TextFrame.TextRange = "aaa" Next End If Next End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas contraire, je reprendrais à partir de ton code. cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser. Le problème était sur les variable wdSeekCurrentPageHeader et wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne selectionne que l'objet principale (et non pas les zones de text). As-tu une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut faire un truc dans le genre): Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True 'WordObj.ScreenUpdating = False Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9 For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes On Error Resume Next 's.Select s.TextFrame.TextRange = "aaa" Next 'WordObj.Selection.HeaderFooter.Shapes(1).Select WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" a écrit dans le message de news:ccje58$n1e$
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je n'ai
pas testé avec cette hisoire de nomenclature ... --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:%23pSP%
J'ai une erreur sur la ligne : For Each s In WordObj.Selection.HeaderFooter.Shapes
"Joel" a écrit dans le message de news:ccja4t$at5$
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
WordObj.ActiveWindow.ActivePane.View.SeekView > wdSeekCurrentPageHeader For Each s In WordObj.Selection.HeaderFooter.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!! --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins de
zones
de
text en arrière plan (entête et pied de page) et en avant plan (là ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
Set WordFile = Nothing Set WordObj = Nothing
End Sub
Bonsoir EMCY,
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie
que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à la
place des questionneurs, il arrive quelquefois que la question reste en
suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras
traduire à partir de ton appli...
Sub TexteEnZone()
Dim ZoneText As Shape
For Each ZoneText In ActiveDocument.Shapes
If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si
l'objet est "Groupé" ou non
ZoneText.TextFrame.TextRange = "aaa"
Else
Dim SousZOneText As Shape
For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on
passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de
sous-groupe...)
SousZOneText.TextFrame.TextRange = "aaa"
Next
End If
Next
End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas
contraire, je reprendrais à partir de ton code.
cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:eKFS2FCaEHA.2296@TK2MSFTNGP10.phx.gbl...
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser.
Le problème était sur les variable wdSeekCurrentPageHeader et
wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut
mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme
qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne
selectionne que l'objet principale (et non pas les zones de text). As-tu
une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut
faire un truc dans le genre):
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
'WordObj.ScreenUpdating = False
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9
For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes
On Error Resume Next
's.Select
s.TextFrame.TextRange = "aaa"
Next
'WordObj.Selection.HeaderFooter.Shapes(1).Select
WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccje58$n1e$1@news-reader5.wanadoo.fr...
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je
n'ai
pas testé avec cette hisoire de nomenclature ...
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:%23pSP%23SOZEHA.3112@TK2MSFTNGP09.phx.gbl...
J'ai une erreur sur la ligne : For Each s In
WordObj.Selection.HeaderFooter.Shapes
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccja4t$at5$1@news-reader5.wanadoo.fr...
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
WordObj.ActiveWindow.ActivePane.View.SeekView > wdSeekCurrentPageHeader
For Each s In WordObj.Selection.HeaderFooter.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!!
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:eIUtXPMZEHA.2388@TK2MSFTNGP09.phx.gbl...
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins
de
zones
de
text en arrière plan (entête et pied de page) et en avant plan (là
ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en
arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object
Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
For Each s In WordFile.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à la place des questionneurs, il arrive quelquefois que la question reste en suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras traduire à partir de ton appli...
Sub TexteEnZone() Dim ZoneText As Shape For Each ZoneText In ActiveDocument.Shapes If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si l'objet est "Groupé" ou non ZoneText.TextFrame.TextRange = "aaa" Else Dim SousZOneText As Shape For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZOneText.TextFrame.TextRange = "aaa" Next End If Next End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas contraire, je reprendrais à partir de ton code. cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser. Le problème était sur les variable wdSeekCurrentPageHeader et wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne selectionne que l'objet principale (et non pas les zones de text). As-tu une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut faire un truc dans le genre): Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True 'WordObj.ScreenUpdating = False Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9 For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes On Error Resume Next 's.Select s.TextFrame.TextRange = "aaa" Next 'WordObj.Selection.HeaderFooter.Shapes(1).Select WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" a écrit dans le message de news:ccje58$n1e$
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je n'ai
pas testé avec cette hisoire de nomenclature ... --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:%23pSP%
J'ai une erreur sur la ligne : For Each s In WordObj.Selection.HeaderFooter.Shapes
"Joel" a écrit dans le message de news:ccja4t$at5$
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
WordObj.ActiveWindow.ActivePane.View.SeekView > wdSeekCurrentPageHeader For Each s In WordObj.Selection.HeaderFooter.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!! --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins de
zones
de
text en arrière plan (entête et pied de page) et en avant plan (là ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
Set WordFile = Nothing Set WordObj = Nothing
End Sub
Emcy
Merci beaucoup pour tant d'effort, ça marche : voici ce que ça donne depuis Excel
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True 'WordObj.ScreenUpdating = False Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
'If WordObj.Selection.HeaderFooter.Shapes(1).GroupItems.Count > 1 Then ' determine si l'objet est groupé
'dans mon cas shape(1) correspond à mon objet groupé For Each SousZoneText In WordObj.Selection.HeaderFooter.Shapes(1).GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZoneText.TextFrame.TextRange = "aaa" Next
PS : j'avais remarqué que tu avais sèché mais j'ai relancé mon problème pour qu'il soit résolu par une personne qui n'avait pas encore vu le message
Quand j'aurais le temps, j'essairais de faire un exemple que je déposerais sur ExcelDowload qui expliquera comment insérer un tableau excel dans un documment word comportant un cartouche et comment remplir ce cartouche
"Joel" a écrit dans le message de news:ccub08$l7u$
Bonsoir EMCY,
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à la
place des questionneurs, il arrive quelquefois que la question reste en suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras traduire à partir de ton appli...
Sub TexteEnZone() Dim ZoneText As Shape For Each ZoneText In ActiveDocument.Shapes If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si l'objet est "Groupé" ou non ZoneText.TextFrame.TextRange = "aaa" Else Dim SousZOneText As Shape For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZOneText.TextFrame.TextRange = "aaa" Next End If Next End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas contraire, je reprendrais à partir de ton code. cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser. Le problème était sur les variable wdSeekCurrentPageHeader et wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne selectionne que l'objet principale (et non pas les zones de text). As-tu une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut
faire un truc dans le genre): Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True 'WordObj.ScreenUpdating = False Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9 For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes On Error Resume Next 's.Select s.TextFrame.TextRange = "aaa" Next 'WordObj.Selection.HeaderFooter.Shapes(1).Select WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" a écrit dans le message de news:ccje58$n1e$
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je n'ai
pas testé avec cette hisoire de nomenclature ... --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:%23pSP%
J'ai une erreur sur la ligne : For Each s In WordObj.Selection.HeaderFooter.Shapes
"Joel" a écrit dans le message de news:ccja4t$at5$
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
WordObj.ActiveWindow.ActivePane.View.SeekView > > wdSeekCurrentPageHeader For Each s In WordObj.Selection.HeaderFooter.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!! --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins de
zones
de
text en arrière plan (entête et pied de page) et en avant plan (là
ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
Set WordFile = Nothing Set WordObj = Nothing
End Sub
Merci beaucoup pour tant d'effort, ça marche : voici ce que ça donne depuis
Excel
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
'WordObj.ScreenUpdating = False
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
'If WordObj.Selection.HeaderFooter.Shapes(1).GroupItems.Count > 1 Then '
determine si l'objet est groupé
'dans mon cas shape(1) correspond à mon objet groupé
For Each SousZoneText In WordObj.Selection.HeaderFooter.Shapes(1).GroupItems
'C'est ici que l'on passe en revue tous les objets du groupe (en espérant
qu'il n'y ait pas de sous-groupe...)
SousZoneText.TextFrame.TextRange = "aaa"
Next
PS : j'avais remarqué que tu avais sèché mais j'ai relancé mon problème pour
qu'il soit résolu par une personne qui n'avait pas encore vu le message
Quand j'aurais le temps, j'essairais de faire un exemple que je déposerais
sur ExcelDowload qui expliquera comment insérer un tableau excel dans un
documment word comportant un cartouche et comment remplir ce cartouche
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccub08$l7u$1@news-reader4.wanadoo.fr...
Bonsoir EMCY,
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie
que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à
la
place des questionneurs, il arrive quelquefois que la question reste en
suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras
traduire à partir de ton appli...
Sub TexteEnZone()
Dim ZoneText As Shape
For Each ZoneText In ActiveDocument.Shapes
If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si
l'objet est "Groupé" ou non
ZoneText.TextFrame.TextRange = "aaa"
Else
Dim SousZOneText As Shape
For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on
passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de
sous-groupe...)
SousZOneText.TextFrame.TextRange = "aaa"
Next
End If
Next
End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas
contraire, je reprendrais à partir de ton code.
cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:eKFS2FCaEHA.2296@TK2MSFTNGP10.phx.gbl...
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser.
Le problème était sur les variable wdSeekCurrentPageHeader et
wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut
mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme
qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne
selectionne que l'objet principale (et non pas les zones de text). As-tu
une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il
faut
faire un truc dans le genre):
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
'WordObj.ScreenUpdating = False
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9
For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes
On Error Resume Next
's.Select
s.TextFrame.TextRange = "aaa"
Next
'WordObj.Selection.HeaderFooter.Shapes(1).Select
WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccje58$n1e$1@news-reader5.wanadoo.fr...
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je
n'ai
pas testé avec cette hisoire de nomenclature ...
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:%23pSP%23SOZEHA.3112@TK2MSFTNGP09.phx.gbl...
J'ai une erreur sur la ligne : For Each s In
WordObj.Selection.HeaderFooter.Shapes
"Joel" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:ccja4t$at5$1@news-reader5.wanadoo.fr...
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
WordObj.ActiveWindow.ActivePane.View.SeekView > > wdSeekCurrentPageHeader
For Each s In WordObj.Selection.HeaderFooter.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!!
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Emcy" <ten.etsop@ycme.ycme> a écrit dans le message de
news:eIUtXPMZEHA.2388@TK2MSFTNGP09.phx.gbl...
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins
de
zones
de
text en arrière plan (entête et pied de page) et en avant plan
(là
ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en
arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object
Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre
la
nomenclature Word
For Each s In WordFile.Shapes
On Error Resume Next
s.TextFrame.TextRange = "aaa"
Next
'If WordObj.Selection.HeaderFooter.Shapes(1).GroupItems.Count > 1 Then ' determine si l'objet est groupé
'dans mon cas shape(1) correspond à mon objet groupé For Each SousZoneText In WordObj.Selection.HeaderFooter.Shapes(1).GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZoneText.TextFrame.TextRange = "aaa" Next
PS : j'avais remarqué que tu avais sèché mais j'ai relancé mon problème pour qu'il soit résolu par une personne qui n'avait pas encore vu le message
Quand j'aurais le temps, j'essairais de faire un exemple que je déposerais sur ExcelDowload qui expliquera comment insérer un tableau excel dans un documment word comportant un cartouche et comment remplir ce cartouche
"Joel" a écrit dans le message de news:ccub08$l7u$
Bonsoir EMCY,
Evidemment, on ne connait pas tout par coeur, et l'arrêt du suivi signifie que l'on "sèche" sur la question.
Comme nous ne sommes pas payés non plus pour poursuivre les recherches à la
place des questionneurs, il arrive quelquefois que la question reste en suspens...
Tu as raison de relancer, j'ai fait l'effort de poursuivre l'étude...
En revanche, j'ai étudié directement sur Word, je pense que tu pourras traduire à partir de ton appli...
Sub TexteEnZone() Dim ZoneText As Shape For Each ZoneText In ActiveDocument.Shapes If ZoneText.GroupItems.Count = 1 Then 'c'est ici que l'on détermine si l'objet est "Groupé" ou non ZoneText.TextFrame.TextRange = "aaa" Else Dim SousZOneText As Shape For Each SousZOneText In ZoneText.GroupItems 'C'est ici que l'on passe en revue tous les objets du groupe (en espérant qu'il n'y ait pas de sous-groupe...) SousZOneText.TextFrame.TextRange = "aaa" Next End If Next End Sub
J'espère que cela te suffira, (adapter avec WordObj.etc...) dans le cas contraire, je reprendrais à partir de ton code. cela devrait donner quelquechose du genre :
for each z in s.GroupeItems pour toi
Tiens-nous au courant..
Bonne soirée ;-)
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Je repose ma question vu que personne ne m'a répondu
c'est bien WordObj qu'il faut utiliser. Le problème était sur les variable wdSeekCurrentPageHeader et wdSeekMainDocument qui ne sont pas reconnue à partir d'excel : il faut mettre respectivement les chiffres 9 et 0.
Maintenant, le problème est que j'ai pleins de zone de text et de forme qui
sont regroupées en un seul objet : avec ta méthode actuelle, je ne selectionne que l'objet principale (et non pas les zones de text). As-tu une
solution ?
voivi une macro que j'ai essayée et qui ne marche pas (je pense qu'il faut
faire un truc dans le genre): Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True 'WordObj.ScreenUpdating = False Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la nomenclature Word
WordFile.ActiveWindow.ActivePane.View.SeekView = 9 For Each s In WordObj.Selection.HeaderFooter.Shapes(1).Shapes On Error Resume Next 's.Select s.TextFrame.TextRange = "aaa" Next 'WordObj.Selection.HeaderFooter.Shapes(1).Select WordObj.ActiveWindow.ActivePane.View.SeekView = 0
"Joel" a écrit dans le message de news:ccje58$n1e$
Re ;-)
c'est peut-être pour toi WordFile et non WordObj...
désolé ! si ce n'est pas le cas, renvoi l'intégralité du code, car je n'ai
pas testé avec cette hisoire de nomenclature ... --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:%23pSP%
J'ai une erreur sur la ligne : For Each s In WordObj.Selection.HeaderFooter.Shapes
"Joel" a écrit dans le message de news:ccja4t$at5$
Bonjour EMCY !
Essaye donc un peu !!!
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next
WordObj.ActiveWindow.ActivePane.View.SeekView > > wdSeekCurrentPageHeader For Each s In WordObj.Selection.HeaderFooter.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next WordObj.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
A bientôt !!! --
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Emcy" a écrit dans le message de news:
Bonjours,
A l'aide d'une macro excel, j'ouvre un fichier word qui à pleins de
zones
de
text en arrière plan (entête et pied de page) et en avant plan (là
ou
on
ecris normalement)
J'arrive à remplir les zones de text en avant plan mais pas en arrière
plan.
Quelqu'un a-t-il une solution ?
voici ma macro pour remplir en avant plan :
Sub Word()
Dim WordObj As Object Dim WordFile As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True Set WordFile = WordObj.Documents.Open(NomenclatureWord) 'ouvre la
nomenclature Word
For Each s In WordFile.Shapes On Error Resume Next s.TextFrame.TextRange = "aaa" Next