Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2007, 14h20   #1
Futur Membre du Club
 
Inscription : juillet 2004
Messages : 27
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2004
Messages : 27
Points : 18
Points : 18
Par défaut [VBA]Copier en-tête, pied de page avec un serveur activeX

Bonjour,

Je me sert de Matlab pour générer un rapport au format RTF et je le modifie ensuite avec un serveur activeX mais plusieurs problèmes se pose à moi.

Je dois copier un en-tête et un pied de page dans mon rapport. J'y arrive mais mon fichier rtf possède plusieurs sections et l'en t'en-tête et le pied de page ne sont copiés que pour la première section de mon rapport (ie la page de titre dans mon cas).
Comment puis je faire pour que l'en-tête et le pied de page apparaissent pour toutes les section du rapport?
Y a t'il une commande pour dire à word que les en-tête et les pieds de page sont identiques pour toutes les sections?
Si ce n'est pas le cas comment faire pour selectionner les en-tte et pied de page de chaque sections et y coller mon nouvel en-tête?

Merci d'avance pour vos conseils
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 14h24   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Si tu possèdes plusieurs sections, la meilleure chose est d'insérer l'entête et le pied de page pour chaque section.

Comment insères-tu l'entête ou le pied de page ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 14h42   #3
Futur Membre du Club
 
Inscription : juillet 2004
Messages : 27
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2004
Messages : 27
Points : 18
Points : 18
Merci pour cette réponse rapide.

Par contre je ne sais pas comment accéder au en-tête et pied de page des autres sections de mon rapport, j'ai recherché sur le forum devellopez.com et sur le site de microsoft mais je n'ai pas trouver d'aide sur les fonctions que je peux utiliser avec le serveur activeX que je lance (je n'ai peut être pas chercher avec les bons mots clef mais connaissant mal ces fonctionnalités je ne sais pas trop quel mot clef utilisé).
Pouvez vous m'indiquer des liens pour obtenir ce type de documentation? (Ce que j'ai fait je l'ai fait en m'inspirant d'un code que j'ai trouvé sur un newsgroup d'aide sur Matlab).

Pour te répondre, j'utilise un document word(teamplate.rtf) contenant un en-tête générique que je copie et que je colle dans le document du rapport.

Ca me donne un code comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
word = actxserver('word.Application');
headerfile = invoke(word.Documents,'open',[pathstr '\teamplate.rtf']);
rptDoc = invoke(word.Documents,'open',[tmpdir '\' name '.rtf']); % The report
 
headerfile.ActiveWindow.ActivePane.View.Type ='wdPrintView';
headerfile.ActiveWindow.ActivePane.View.SeekView='wdSeekCurrentPageHeader';
headerfile.ActiveWindow.ActivePane.Selection.HeaderFooter.Range.Copy; %copying the header
 
rptDoc.Activate;
rptDoc.ActiveWindow.ActivePane.View.Type ='wdPrintView';
rptDoc.ActiveWindow.ActivePane.View.SeekView='wdSeekCurrentPageHeader';
rptDoc.ActiveWindow.ActivePane.Selection.HeaderFooter.Range.Paste; %pasting the header
 
headerfile.Activate;
headerfile.ActiveWindow.ActivePane.View.Type ='wdPrintView';
headerfile.ActiveWindow.ActivePane.View.SeekView='wdSeekCurrentPageFooter';
headerfile.ActiveWindow.ActivePane.Selection.HeaderFooter.Range.Copy; %copying the footer
 
rptDoc.Activate;
rptDoc.ActiveWindow.ActivePane.View.Type ='wdPrintView';
rptDoc.ActiveWindow.ActivePane.View.SeekView='wdSeekCurrentPageFooter';
rptDoc.ActiveWindow.ActivePane.Selection.HeaderFooter.Range.Paste; %pasting the footer
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 14h56   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
1
2
3
4
With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header text"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer text"
End With
Il faut compter les sections
Code :
i =ActiveDocument.section.count
Une boucle
Code :
1
2
3
4
5
6
 
For j = 1 to i
    With ActiveDocument.Sections(j)
       .Headers(wdHeaderFooterPrimary).Range.Text = "Header text"
       .Footers(wdHeaderFooterPrimary).Range.Text = "Footer text"
    End With
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 15h34   #5
Futur Membre du Club
 
Inscription : juillet 2004
Messages : 27
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2004
Messages : 27
Points : 18
Points : 18
Merci grace au code que tu m'as fourni que tu m'as fourni je vais pouvoir résoudre mon problème.

Par contre pour information pour d'autre utilisateurs, Matlab a sa propre synthaxe pour l'utilisation de word:

exemple
Code :
1
2
3
4
With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header text"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer text"
End With
s'écris en Matlab
Code :
1
2
ActiveDocument.Sections.Item(1).Headers.Item('wdHeaderFooterPrimary').Range.Text = "Header text"
ActiveDocument.Sections.Item(1).Footers.Item('wdHeaderFooterPrimary').Range.Text = "Footer text"
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 15h35   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Ne connaissant pas Matlab, je t'ai donné ce que j'avais.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 11h06   #7
Dut
Rédacteur/Modérateur
 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 12 930
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 12 930
Points : 15 935
Points : 15 935
Citation:
Envoyé par petit806 Voir le message
Par contre pour information pour d'autre utilisateurs, Matlab a sa propre synthaxe pour l'utilisation de word:
Effectivement, on aurait très bien pu en discuter sur le forum MATLAB
__________________
Mes contributions MATLAB (R2009a - Windows & Linux)

• J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
• Des larmes coulèrent doucement des yeux fermés du vieil homme. Moi je pleurais comme un enfant, que d'ailleurs pour lui je ne cesserais d'être ma vie durant (Amkoullel)

• Lâché de Mogwai sur St Malo... aie aie aie... ouille ouille ouille
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web