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 20/02/2008, 22h28   #1
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
Par défaut Copier certaines pages à partir d'un document modèle

J'ai un document modèle de 15 pages.

Je voudrais créer un nouveau document contenant les pages x,y,z. Ces pages seront extraitent du document modèle.

Comment faire le tout par programmation?

Merci de votre aide!
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 08h42   #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
Une fois de plus, les pages ne sont pas des objets en Word et de plus, elles sont dynamiques.
Les pages dépendent du format du papier, de la taille des caractères, de l'imprimante,...

Si il y a un "délimiteur" autre que les pages, ce serait plus facile.
Le gros problème est que l'on ne parvient pas à sélectionner le contenu d'une 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 21/02/2008, 11h38   #3
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Par défaut Sélectionner des pages

Salut,

Comme le dit Heureux-oli, Word ne gère pas des pages mais du texte qui se découpe en page en fonction de plein de paramètres dont certains sont contrôlables comme le format du papier, les marges du document et d'autres ne le sont pas comme les ... marges de ton imprimante. Donc tu vois que rien que les marges posent un pb.

En revanche ce que te prospose Heureux-Oli est vrai (une fois de plus), si tu as des marqueurs matérialisés comme un changement de chapitre, de sous-chapitre, un saut de page, de section ou encore mieux un signet, tu peux alors retrouver ton début de "page" en fait le texte qui correspond au début de ta page, tu peux alors étendre ta sélection jusqu'au prochain marqueur, tu copies, tu changes de doc et tu colles. Dans un modèle, tu peux aussi partir du doc initial issu de ton modèle et supprimer ce qui est en trop.

Si maintenant, tu ne peux pas faire autrement que d'utiliser les pages, tu dois alors passer par un logiciel capable de gérer la pagination réelle quelque soit l'imprimante: PDF, mais c'est plus compliqué si tu veux après modifié ton doc (surtout si tu as des tableaux).

voilà, tiens-nous au courant
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 12h01   #4
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
Merci pour la bonne explication!

Les margueurs que j'ai dans chaque page de mon document modèle sont des signets.

Merci de votre aide
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 12h14   #5
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Par défaut Copier-Coller avec signets

Salut,

Là c'est simple. Si on suppose que le nom de ton 1er signet que tu veux sélectionner soit "sign1" et le 2ieme "sign2", le code suivant:

Code :
  ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("sign1").Start, End:=ActiveDocument.Bookmarks("sign2").End)
te récupère un objet range que tu peux manipuler pour le copier par exemple.

Attention, dans ce code, les signets sont inclus
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 23h20   #6
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
J'ai modifié la ligne pour obtenir ceci:

Code :
copie=WordDoc.Application.ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("debut").Start, End:=ActiveDocument.Bookmarks("fin").End)
J'ai un message d'erreur:

Erreur d'exécutin = 4248
Commande non disponible : aucun document n'est ouvert

pourtant j'ouvre mon document WORD en premier.

Que faire?
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 23h23   #7
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
ok j'ai trouvé

c'était plutot :

Code :
WordDoc.Application.ActiveDocument.Range(Start:=WordDoc.Application.ActiveDocument.Bookmarks("debut").Start, End:=WordDoc.Application.ActiveDocument.Bookmarks("fin").End)
Désolé!
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 01h23   #8
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Salut,

Si c'est OK, clique sur
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 01h34   #9
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
J'attends pour ajoute RÉSOLU.

Il va avoir peut-être une suite.....
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 08h57   #10
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
Je pense que ta ligne même si elle ne lève pas d'erreur est un peu lourde.

wordDoc est un objet Document.
Application est un objet Application

Dans l'ordre des choses, on va toujours du plus gros au plus petit.

Code :
Application.ObjetFichier.PlageDansObjet
Ce qui donne
Code :
1
2
 
Application.wordDoc.Range
Ou encore
Code :
1
2
 
ActiveDocument.range
Si tu te trouves dans Word, il n'est pas utile de faire appel à l'application, il se fait par défaut.
__________________
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 22/02/2008, 12h00   #11
Invité régulier
 
Inscription : juillet 2003
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 54
Points : 7
Points : 7
Merci pour les explications!

je me trouve dans excel lorsque j'écris mon code...
Job3-14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 12h32   #12
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 es dans Excel

Code :
wApp.Documents("MonDoc.doc").Range....
avec wApp qui est ton Word.Application

où Documents("...") peut être ActiveDocument.
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h28.


 
 
 
 
Partenaires

Hébergement Web