Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA 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 19/11/2007, 15h38   #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] Commande pour server activeX pour la numérotation des pages

Suite à mon précédent message, je cherche à modifier la numérotation des pieds de page de mon rapport et à faire des modifications dans mon en tête.

Voilà mes pieds de page inclus un champ numéro de page mais le problème c'est que mes différentes sections n'ont pas les mêmes numérotations: certaines utilisent des numérotations en chiffre romain, d'autre en chiffre et surtout les numérotation recommence à 1 (ou i) à certaines sections. Je souhaiterai donc trouver les commandes qui permettent de choisir le type de numérotation et de choisir numérotation à la suite de la section précédent. Ensuite j'utiliserai une boucle pour l'appliquer à toutes les sections de mon rapport.

Une autre de mes questions concernent l'en tete. J'ai un en tete qui contient 2images (en partie gauche et partie centrale de l'en tete) et une partie texte (en partie droite de l'en tete). Je souhaiterai modifié la partie texte sans toucher à mes images. J'ai essayé le code suivant:

Code :
1
2
3
4
5
for i=1:rptDoc.Sections.Count
tmp=rptDoc.Sections.Item(l).Headers.Item(''wdHeaderFooterPrimary').Range.Text;
% ici j'effectue la modification de ma chaine de caractere tmp
rptDoc.Sections.Item(l).Headers.Item(''wdHeaderFooterPrimary').Range.Text=tmp;
end
mais en utilisant ce type de commande j'efface les images de mon en tete ce qui n'est pas ce que je souhaite, et j'obtiens un en tete qui ne contient plus que tu texte.
Avez vous une idée de ce que je dois faire pour ne modifier que la partie texte de mon en tete?


PS: Même si ce post traite un peu de Matlab Dut, il concerne principalement des commandes pour word, c'est pourquoi je préfère poser la question ici plutôt que sur le forum Matlab où beaucoup de moins de monde utilise un server activeX pour commander word.
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 10h32   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
A propos de l'en-tête :
Je n'ai fait qu'un test en supposant que les images étaient séparées du text par une tabulation. Si c'est bien le cas, ce que tu peux faire est sélectionner l'en-tête, récupérer le texte, le rechercher dans l'en-tête pour le remplacer par le nouveau.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Test()
Dim LeTexte as string
Application.ScreenUpdating = False
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.WholeStory
    LeTexte = Split(Selection, vbTab)(1)
    Selection.HomeKey Unit:=wdLine
    With Selection.Find
        .Execute FindText:=LeTexte
    End With
    Selection.TypeText Text:="Un nouveau texte"
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Application.ScreenUpdating = False
End Sub
Pour ton autre question, je n'ai pas la réponse. Un exemple, peut-être...
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 14h05   #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 je vais tester avec ce que tu m'as donné.

Sinon pour mon autre question, à part tu te donnais un documents de la forme que je te cite je ne sais pas trop comment te donner un exemple (et je ne crois pas que le forum autorise d'attacher des fichiers à un message ou si c'est le cas je ne sais pas utiliser cette fonctionnalité). Enfin je vais essayer d'être plus explicite.

Pour créer un document word exemple on fait 4saut de sections (Insertion>Saut de section>Page suivante à chaque fois).
Mes sections sont ainsi:
1ière section 2pages (pour avoir plusieurs pages j'utilise des saut de page simple)
2ième section 1page
3ième section 2pages
4ième section 4pages
5ième section 5pages

J'active le mode en-tête et pied de page et j'insère dans le pied de page un numéro de page (avec la barre d'action des en-tête et pied de page).
Ensuite j'utilise le bouton numérotation de page pour chaque section.
Pour la section 1, je choisi: format 1,2,3 Numérotation des pages à la suite de la section précédente
Pour la section 2, je choisi: format i,ii,iii Numérotation des pages à partir de 1
Pour la section 3, je choisi: format i,ii,iii Numérotation des pages à la suite de la section précédente
Pour la section 4, je choisi: format 1,2,3 Numérotation des pages à partir de 1
Pour la section 5, je choisi: format 1,2,3 Numérotation des pages à la suite de la section précédente

J'ai donc des pages qui sont numéroter de 1 à 2 puis de i à iii puis de 1 à 9.

En utilisant les commandes de mon serveur activeX je voudrais faire en sorte que mes pages soit numérotés de 1à 14 (toutes les sections numérotés les unes à la suite des autres et toutes les sections numérotés avec un format 1,2,3 etc).

J'espère que ceci est plus clair.
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 14h20   #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
On peut attacher des fichiers aux messages.
L'icone a la forme d'un trombone ou attache tout avec une flèche.
Seule la taille est limitée.
Il est préférable de compresser avant de poster.
__________________
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 20/11/2007, 15h11   #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
Voici un exemple du type de fichier que je veux modifier enfin la seule différence.

Dans l'en-tête je dois modifier la troisième partie, rajouter un nom derrière ref, rajouter la date etc.

Et pour ce qui est du pied de page, je dois comme je le disais dans mon précédent message mettre toutes les numérotations uniformes et les unes à la suite des autres.

edit: suppression du fichier pour libérer de la mémoire
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 15h25   #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
Code :
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).PageNumbers.RestartNumberingAtSection = False
Pour garder la numérotation d'une section à l'autre.
__________________
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 21/11/2007, 11h43   #7
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 et j'ai trouvé aussi comment modifier la format de numérotation, il faut utiliser:

Code :
rptDoc.Sections.Item(1).Headers.Item(1).PageNumbers.NumberStyle='wdPageNumberStyleArabic'
pour obtenir un format de numérotation 1,2,3...

Pour ce qui est des commandes Findtext et TypeText la synthaxe est trop différente dans matlab donc je n'arrive pas à les faire fonctionner mais je vais demander de l'aide dans le forum Matlab, il pourront surment mieux m'aiguiller.
petit806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h14.


 
 
 
 
Partenaires

Hébergement Web