dans un doc qui contient une première page différente, je dois effectuer un
traitement dans les pieds de page. L'enregistreur me done ceci :
--------------------------------------------
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
ActiveWindow.ActivePane.View.NextHeaderFooter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
--------------------------------------------
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' :
l'objet a été supprimé."
Or c'est lui qui a pris note !!!
Mon fichier n'a subit aucune modif entre temps.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Si vous disiez sur quelle ligne ça se produit ?
-- A+
Corona
Bonjour Jac, Si l'erreur ce situe au niveau de l'instruction 'ActiveWindow.ActivePane.View.NextHeaderFooter Ajouter par exemple ce code au début de la macro 'Selection.HomeKey Unit:=wdStory Ce code est l'équivalent de 'control Home' Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la page 1' (tout dépend de ce que tu souhaites faire. Vraisemblablement tu te trouves à la dernière section et le programme ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ? L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire. Philippe
"Jac" a écrit dans le message de news:
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer un traitement dans les pieds de page. L'enregistreur me done ceci : -------------------------------------------- If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If ActiveWindow.ActivePane.View.NextHeaderFooter ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument -------------------------------------------- Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Or c'est lui qui a pris note !!! Mon fichier n'a subit aucune modif entre temps. Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Jac
Bonjour Jac,
Si l'erreur ce situe au niveau de l'instruction
'ActiveWindow.ActivePane.View.NextHeaderFooter
Ajouter par exemple ce code au début de la macro 'Selection.HomeKey
Unit:=wdStory
Ce code est l'équivalent de 'control Home'
Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la page
1' (tout dépend de ce que tu souhaites faire.
Vraisemblablement tu te trouves à la dernière section et le programme
ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire.
Philippe
"Jac" <jsanssp@mfra.net> a écrit dans le message de news:
uxZFu9axHHA.3616@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer
un traitement dans les pieds de page. L'enregistreur me done ceci :
--------------------------------------------
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
ActiveWindow.ActivePane.View.NextHeaderFooter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
--------------------------------------------
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' :
l'objet a été supprimé."
Or c'est lui qui a pris note !!!
Mon fichier n'a subit aucune modif entre temps.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Bonjour Jac, Si l'erreur ce situe au niveau de l'instruction 'ActiveWindow.ActivePane.View.NextHeaderFooter Ajouter par exemple ce code au début de la macro 'Selection.HomeKey Unit:=wdStory Ce code est l'équivalent de 'control Home' Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la page 1' (tout dépend de ce que tu souhaites faire. Vraisemblablement tu te trouves à la dernière section et le programme ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ? L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire. Philippe
"Jac" a écrit dans le message de news:
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer un traitement dans les pieds de page. L'enregistreur me done ceci : -------------------------------------------- If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If ActiveWindow.ActivePane.View.NextHeaderFooter ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument -------------------------------------------- Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Or c'est lui qui a pris note !!! Mon fichier n'a subit aucune modif entre temps. Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Jac
Jac
Bonjour Geo,
c'est sur la ligne If ActiveWindow.View.SplitSpecial <> wdPaneNone Then qur tout s'arrête...
"Geo" a écrit dans le message de news:
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Si vous disiez sur quelle ligne ça se produit ?
-- A+
Bonjour Geo,
c'est sur la ligne
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
qur tout s'arrête...
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.720e7d77b0691a5e.41568@sans.pub...
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825'
: l'objet a été supprimé."
c'est sur la ligne If ActiveWindow.View.SplitSpecial <> wdPaneNone Then qur tout s'arrête...
"Geo" a écrit dans le message de news:
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Si vous disiez sur quelle ligne ça se produit ?
-- A+
Jac
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
"Corona" a écrit dans le message de news: ug6l%
Bonjour Jac, Si l'erreur ce situe au niveau de l'instruction 'ActiveWindow.ActivePane.View.NextHeaderFooter Ajouter par exemple ce code au début de la macro 'Selection.HomeKey Unit:=wdStory Ce code est l'équivalent de 'control Home' Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la page 1' (tout dépend de ce que tu souhaites faire. Vraisemblablement tu te trouves à la dernière section et le programme ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ? L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire. Philippe
"Jac" a écrit dans le message de news:
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer un traitement dans les pieds de page. L'enregistreur me done ceci : -------------------------------------------- If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If ActiveWindow.ActivePane.View.NextHeaderFooter ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument -------------------------------------------- Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Or c'est lui qui a pris note !!! Mon fichier n'a subit aucune modif entre temps. Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Jac
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
"Corona" <noadress@be.tf> a écrit dans le message de news:
ug6l%238fxHHA.4500@TK2MSFTNGP06.phx.gbl...
Bonjour Jac,
Si l'erreur ce situe au niveau de l'instruction
'ActiveWindow.ActivePane.View.NextHeaderFooter
Ajouter par exemple ce code au début de la macro 'Selection.HomeKey
Unit:=wdStory
Ce code est l'équivalent de 'control Home'
Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la
page 1' (tout dépend de ce que tu souhaites faire.
Vraisemblablement tu te trouves à la dernière section et le programme
ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire.
Philippe
"Jac" <jsanssp@mfra.net> a écrit dans le message de news:
uxZFu9axHHA.3616@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer
un traitement dans les pieds de page. L'enregistreur me done ceci :
--------------------------------------------
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
ActiveWindow.ActivePane.View.NextHeaderFooter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
--------------------------------------------
Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825'
: l'objet a été supprimé."
Or c'est lui qui a pris note !!!
Mon fichier n'a subit aucune modif entre temps.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
"Corona" a écrit dans le message de news: ug6l%
Bonjour Jac, Si l'erreur ce situe au niveau de l'instruction 'ActiveWindow.ActivePane.View.NextHeaderFooter Ajouter par exemple ce code au début de la macro 'Selection.HomeKey Unit:=wdStory Ce code est l'équivalent de 'control Home' Il y a d'autres approches 'Atteindre la section 1' ou 'Atteindre la page 1' (tout dépend de ce que tu souhaites faire. Vraisemblablement tu te trouves à la dernière section et le programme ne peux évidemment pas aller à la suivante.
Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ? L'enregisteur de macro est une aide à la programmation mais ne peux pas
'deviner' tout ce que l'on veux faire. Philippe
"Jac" a écrit dans le message de news:
Bonjour à tous,
dans un doc qui contient une première page différente, je dois effectuer un traitement dans les pieds de page. L'enregistreur me done ceci : -------------------------------------------- If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader End If ActiveWindow.ActivePane.View.NextHeaderFooter ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument -------------------------------------------- Et quand je veux relancer ce code, vba me dit "Erreur d'exécution '5825' : l'objet a été supprimé."
Or c'est lui qui a pris note !!! Mon fichier n'a subit aucune modif entre temps. Pourquoi ne veut-il pas faire ce qu'il a noté lui-même ?
Merci d'avance à qui pourra me dire ce que je dois faire ou modifier.
Jac
Geo
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question de fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow If .View.SplitSpecial <> wdPaneNone Then .Panes(2).Close End If If .ActivePane.View.Type = wdNormalView Or _ .ActivePane.View.Type = wdOutlineView Then .ActivePane.View.Type = wdPrintView End If .ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then .ActivePane.View.SeekView = wdSeekCurrentPageFooter Else .ActivePane.View.SeekView = wdSeekCurrentPageHeader End If .ActivePane.View.NextHeaderFooter .ActivePane.View.SeekView = wdSeekMainDocument End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous proposer un code plus simple. Pour ce type de travail Word prévoit toutes les cas de figure d'affichage. Comme c'est vous qui programmez, vous savez où vous en êtes de l'affichage il y a donc pas mal de code inutile. De plus, précisez votre version de Word, il y a quelques cas de traitement d'en-tête qui réagiss(ai)ent différemment avec 2007.
-- A+
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question
de fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow
If .View.SplitSpecial <> wdPaneNone Then
.Panes(2).Close
End If
If .ActivePane.View.Type = wdNormalView Or _
.ActivePane.View.Type = wdOutlineView Then
.ActivePane.View.Type = wdPrintView
End If
.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
.ActivePane.View.NextHeaderFooter
.ActivePane.View.SeekView = wdSeekMainDocument
End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous
proposer un code plus simple.
Pour ce type de travail Word prévoit toutes les cas de figure
d'affichage. Comme c'est vous qui programmez, vous savez où vous en
êtes de l'affichage il y a donc pas mal de code inutile.
De plus, précisez votre version de Word, il y a quelques cas de
traitement d'en-tête qui réagiss(ai)ent différemment avec 2007.
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question de fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow If .View.SplitSpecial <> wdPaneNone Then .Panes(2).Close End If If .ActivePane.View.Type = wdNormalView Or _ .ActivePane.View.Type = wdOutlineView Then .ActivePane.View.Type = wdPrintView End If .ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then .ActivePane.View.SeekView = wdSeekCurrentPageFooter Else .ActivePane.View.SeekView = wdSeekCurrentPageHeader End If .ActivePane.View.NextHeaderFooter .ActivePane.View.SeekView = wdSeekMainDocument End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous proposer un code plus simple. Pour ce type de travail Word prévoit toutes les cas de figure d'affichage. Comme c'est vous qui programmez, vous savez où vous en êtes de l'affichage il y a donc pas mal de code inutile. De plus, précisez votre version de Word, il y a quelques cas de traitement d'en-tête qui réagiss(ai)ent différemment avec 2007.
-- A+
Jac
En fait, mon document de base est un modèle Word XP. A l'ouverture, via une macro Private Sub Document_New(), je remets-en place la cible Excel du publipostage, je mets à jour les champs, et je fusionne dans un nouveau document à qui je fais subir un petit traitement des dates dans le corps du texte pour mettre en exposant le "er" des premiers jours du mois.
C'est quand je veux appliquer ce traitement dans les pieds de page (de première page puis des pages suivantes) que la macro s'arrête. En fait ce qu'il me faut c'est activer le premier pied de page / traitement des dates / puis activer le pied de page suivante / traitement des dates.
Pour ce qui est du premier pied de page, je viens de trouver comment y accéder rapidement en écrivant cette réponse : je remplace les 13 lignes du générateur de macro par ActiveDocument.ActiveWindow.View.SeekView = wdSeekFirstPageFooter et ça passe sans problème. Ouf.
Donc ma question se résume désormais trouver la phrase magique pour à atteindre le prochain pied de page. J'ai essayé avec "... = wdSeeknextPageFooter" mais ça ne fonctionne pas. Avec "ActiveWindow.ActivePane.View.NextHeaderFooter" de l'enregistreur, je retombe sur une erreur 5825 : l'objet a été supprimé.
"Geo" a écrit dans le message de news:
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question de fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow If .View.SplitSpecial <> wdPaneNone Then .Panes(2).Close End If If .ActivePane.View.Type = wdNormalView Or _ .ActivePane.View.Type = wdOutlineView Then .ActivePane.View.Type = wdPrintView End If .ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then .ActivePane.View.SeekView = wdSeekCurrentPageFooter Else .ActivePane.View.SeekView = wdSeekCurrentPageHeader End If .ActivePane.View.NextHeaderFooter .ActivePane.View.SeekView = wdSeekMainDocument End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous proposer un code plus simple. Pour ce type de travail Word prévoit toutes les cas de figure d'affichage. Comme c'est vous qui programmez, vous savez où vous en êtes de l'affichage il y a donc pas mal de code inutile. De plus, précisez votre version de Word, il y a quelques cas de traitement d'en-tête qui réagiss(ai)ent différemment avec 2007.
-- A+
En fait, mon document de base est un modèle Word XP.
A l'ouverture, via une macro Private Sub Document_New(), je remets-en place
la cible Excel du publipostage, je mets à jour les champs, et je fusionne
dans un nouveau document à qui je fais subir un petit traitement des dates
dans le corps du texte pour mettre en exposant le "er" des premiers jours du
mois.
C'est quand je veux appliquer ce traitement dans les pieds de page (de
première page puis des pages suivantes) que la macro s'arrête. En fait ce
qu'il me faut c'est activer le premier pied de page / traitement des dates /
puis activer le pied de page suivante / traitement des dates.
Pour ce qui est du premier pied de page, je viens de trouver comment y
accéder rapidement en écrivant cette réponse : je remplace les 13 lignes du
générateur de macro par
ActiveDocument.ActiveWindow.View.SeekView = wdSeekFirstPageFooter
et ça passe sans problème. Ouf.
Donc ma question se résume désormais trouver la phrase magique pour à
atteindre le prochain pied de page.
J'ai essayé avec "... = wdSeeknextPageFooter" mais ça ne fonctionne pas.
Avec "ActiveWindow.ActivePane.View.NextHeaderFooter" de l'enregistreur, je
retombe sur une erreur 5825 : l'objet a été supprimé.
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.824a7d77179b7312.41568@sans.pub...
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question de
fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow
If .View.SplitSpecial <> wdPaneNone Then
.Panes(2).Close
End If
If .ActivePane.View.Type = wdNormalView Or _
.ActivePane.View.Type = wdOutlineView Then
.ActivePane.View.Type = wdPrintView
End If
.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
.ActivePane.View.NextHeaderFooter
.ActivePane.View.SeekView = wdSeekMainDocument
End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous
proposer un code plus simple.
Pour ce type de travail Word prévoit toutes les cas de figure d'affichage.
Comme c'est vous qui programmez, vous savez où vous en êtes de l'affichage
il y a donc pas mal de code inutile.
De plus, précisez votre version de Word, il y a quelques cas de traitement
d'en-tête qui réagiss(ai)ent différemment avec 2007.
En fait, mon document de base est un modèle Word XP. A l'ouverture, via une macro Private Sub Document_New(), je remets-en place la cible Excel du publipostage, je mets à jour les champs, et je fusionne dans un nouveau document à qui je fais subir un petit traitement des dates dans le corps du texte pour mettre en exposant le "er" des premiers jours du mois.
C'est quand je veux appliquer ce traitement dans les pieds de page (de première page puis des pages suivantes) que la macro s'arrête. En fait ce qu'il me faut c'est activer le premier pied de page / traitement des dates / puis activer le pied de page suivante / traitement des dates.
Pour ce qui est du premier pied de page, je viens de trouver comment y accéder rapidement en écrivant cette réponse : je remplace les 13 lignes du générateur de macro par ActiveDocument.ActiveWindow.View.SeekView = wdSeekFirstPageFooter et ça passe sans problème. Ouf.
Donc ma question se résume désormais trouver la phrase magique pour à atteindre le prochain pied de page. J'ai essayé avec "... = wdSeeknextPageFooter" mais ça ne fonctionne pas. Avec "ActiveWindow.ActivePane.View.NextHeaderFooter" de l'enregistreur, je retombe sur une erreur 5825 : l'objet a été supprimé.
"Geo" a écrit dans le message de news:
Bonjour Corona,
justement, j'ai cette ligne juste avant la ligne qui bloque
Selection.HomeKey Unit:=wdStory If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
Votre programmation marche très bien chez moi, peut-être une question de fenêtre affichée, essayez cette forme :
With ActiveDocument.ActiveWindow If .View.SplitSpecial <> wdPaneNone Then .Panes(2).Close End If If .ActivePane.View.Type = wdNormalView Or _ .ActivePane.View.Type = wdOutlineView Then .ActivePane.View.Type = wdPrintView End If .ActivePane.View.SeekView = wdSeekCurrentPageHeader If Selection.HeaderFooter.IsHeader = True Then .ActivePane.View.SeekView = wdSeekCurrentPageFooter Else .ActivePane.View.SeekView = wdSeekCurrentPageHeader End If .ActivePane.View.NextHeaderFooter .ActivePane.View.SeekView = wdSeekMainDocument End With
Comme l'a dit Corona, dites ce que vous voulez faire, ça permet de vous proposer un code plus simple. Pour ce type de travail Word prévoit toutes les cas de figure d'affichage. Comme c'est vous qui programmez, vous savez où vous en êtes de l'affichage il y a donc pas mal de code inutile. De plus, précisez votre version de Word, il y a quelques cas de traitement d'en-tête qui réagiss(ai)ent différemment avec 2007.