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 14/10/2007, 17h54   #1
Nouveau Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 74
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 74
Points : 34
Points : 34
Par défaut Mise en page d'un document Word sous VBA/Word

Bonjour,

Je développe actuellement une application en VBA qui me permet de générer des comptes rendus sous word. J'aimerais savoir s'il est possible de spécifier les marges du document dans mon code VBA (Ex: 2cm à gauche, 1cm à droite)?
Lorsque je le fais une fois mon document word génerer (Fichier->Mise en page->Marges...), tout est décalé.

Merci d'avance.
cupidette92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 19h52   #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
Je pense que c'est un début

Code :
1
2
3
4
5
6
7
8
 
Application.ActiveDocument.Select
 With Selection.PageSetup
    .LeftMargin = InchesToPoints(0.75)
    .RightMargin = InchesToPoints(0.75)
    .TopMargin = InchesToPoints(1.5)
    .BottomMargin = InchesToPoints(1)
End With
On peut aussi le faire avec

Code :
CentimetersToPoints(2.5)
__________________
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/10/2007, 13h07   #3
Nouveau Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 74
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 74
Points : 34
Points : 34
Merci beaucoup,

J'ai testé le code que tu m'as fourni, ça passe mais en exécutant mon programme VBA, j'ai une erreur comme quoi les dimensions choisies à gauche/droite sont trop grandes pour certaines parties du document. J'ai modifié comme j'ai pu mais ça passe pas. Mon responsable veut qu'une phrase tienne sur 18 cm au lieu de 21. Il ya des tableaux et du texte dans mon document word, mais il n'accepte pas une marge de 2 cm à gauche et 1 cm à droite.

encore merci....
cupidette92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 13h36   #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
Dans ce cas, tu dois travailler par sections.

On peut déterminer la mise en page par section.
On peut même avoir pour une section continue une mise en page différente.
__________________
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/10/2007, 13h38   #5
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 manques à tous mes devoirs.

voilà le code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub pageSetupOli()
With ActiveDocument.Sections(1).PageSetup
 
 
    .LeftMargin = CentimetersToPoints(2.5)
    .RightMargin = CentimetersToPoints(1)
    .TopMargin = CentimetersToPoints(4)
    .BottomMargin = CentimetersToPoints(5)
End With
 
 
End Sub
__________________
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/02/2008, 11h44   #6
Invité régulier
 
Inscription : septembre 2007
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 12
Points : 9
Points : 9
Bonjour,

J'ai une question sur la mise en page d'un document.

Je souhaiterai faire une marge différente entre la première page et les suivantes.
Est ce que quelqu'un aurait une idée (sachant que j'arrive déjà à générer un pied de page différent entre la première et les suivantes, il ne me reste plus qu'a arriver à "jouer" avec les marges) ? Dois je faire par section, par point ?

Merci d'avance pour votre aide.

Fred
Banzai31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 13h04   #7
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
Par section !
__________________
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/02/2008, 13h28   #8
Invité régulier
 
Inscription : septembre 2007
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 12
Points : 9
Points : 9
Heureux-oli, j'aurai une autre question

je génère un document qui n'a qu'une seule page au départ mais qui doit changer de marge (en bas) sur la deuxième page. J'arrive à avoir mon pied de page différent sur seconde page dès qu'elle apparait mais je sais pas comment faire.

Si je passe par section le problème est que je ne peux pas créer de saut de section donc je ne vois pas comment utiliser les sections.

Aurais tu une suggestion ?
Banzai31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 13h53   #9
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
Dans la mise en page modèle, tu dois spécifier que la première page est différente.

C'est au niveua du modèle qu'il faut le faire, c'est un peu plus facile à mettre en oeuvre.
__________________
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/02/2008, 14h06   #10
Invité régulier
 
Inscription : septembre 2007
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 12
Points : 9
Points : 9
Ok, c'est une bonne idée
par contre pourrais tu m'expliquer comment faire car je ne trouve ça que pour les en-têtes et pieds de pages.
Banzai31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 15h05   #11
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
Mea culpa,

Pour les marge, il faut impérativement un saut de section et il n'est pas nécessaire de la faire sur une nouvelle page.
Le saut peut être continu.
__________________
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/02/2008, 16h33   #12
Invité régulier
 
Inscription : septembre 2007
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 12
Points : 9
Points : 9
Mais la question, est il possible de pouvoir mettre 2 marges du bas différentes sur la première page et les suivantes ? ^^
Banzai31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 17h05   #13
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
Sans saut de section, ce n'est pas possible.
__________________
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/02/2008, 16h22   #14
Invité régulier
 
Inscription : septembre 2007
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2007
Messages : 12
Points : 9
Points : 9
Ok, ça me conforte bien dans l'idée que c'est maheureusement une limitation de WORD (enifn limitation car non automatisable)

sinon j'ai une autre question, est il possible de modifier la position d'un tableau en vba ?
Banzai31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 17h18   #15
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
Il est préférable d'ouvrir un nouveau fil de discussion avec un nouveau sujet que de poster en enfilade sur un sujet tagué résolu.

Mais ta question est un peu floue, profites en pour la clarifier.
__________________
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/02/2008, 18h48   #16
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 Changement de marge

Salut,

Même si je ne suis pas un grand défenseur de Word, je ne peux te laisser dire ça. Tu as une demande/un besoin à laquelle Word répond : peut-on changer les marges d'un document ? Word le prend bien en compte mais pour le réaliser demande une section. Oui, hélas, en informatique, il faut parfois, cliquer, choisir des options... et pas simplement penser à ce que l'on voudrait faire. Ta réflexion me fait penser à quelqu'un qui demanderait : un véhicule peut-il me transporter à une destination donnée ? Oui mais il faut monter de dans et le démarrer (entre autres).

Quant à savoir si c'est automatisable, la réponse est oui. Pour te le prouver, tu n'as qu'à prendre l'enregistreur de macro de Word, insérer une nouvelle section et changer les marges. Ce code est alors réutilisable comme toutes les macros et automatisable sur un bouton, une macro autoExec...

Citation:
Envoyé par Banzai31 Voir le message
Ok, ça me conforte bien dans l'idée que c'est maheureusement une limitation de WORD (enifn limitation car non automatisable)
Pour ta question,
Citation:
Envoyé par Banzai31 Voir le message
est il possible de modifier la position d'un tableau en vba
Oui il suffit de faire un couper-coller (en VBA) ou d'insérer du texte devant, ce qui a pour effet de déplacer ton tableau (si celui est inséré dans le texte ou ancré dessus). Là encore, c'est automatisable, pour trouver le code de base, si tu ne le connais pas, utilise l'enregistreur de macro, fais tes modifications par l'interface (la souris reste même utilisable dans certains cas) puis lorsque tu es satisfait du résultat, arrête l'enregistrement et regarde le code généré pour l'adapter éventuellement.

Voilà
Sepia 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 22h18.


 
 
 
 
Partenaires

Hébergement Web