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/10/2007, 14h33   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 17
Points : 4
Points : 4
Par défaut Macro pour imprimer les pages désirées selon un champ

Bonjour,
J'ai un document Word avec des champs de fusions qui se mettent à jour selon des conditions, le champ est soit "N" ou "Y" , les champs sont rassemblés dans un tableau sur une page de mon document, j'aimerais pouvoir ensuite faire appel à une macro qui m'imprime uniquement les pages en relation avec ce champ quand il est Y.
exemple Y page 2, Y page5, Y page 8, impression uniquement de la page 2,5 et 8.
Merci de votre aide, je suis débutant en macro
steffguibo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2007, 15h13   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 356
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 356
Points : 29 273
Points : 29 273
Il faut sélectionner le tableau, boucler sur les cellules.
Vérifier la valeur de la cellule, si Y, alors imprimer la page qui est contenue dans un autre cellules.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Sub ImprimerDeTableau()
Dim oTbl As Table
Dim oCl As cell
Dim i As Integer, j As Integer
Dim stPage As String
 
i = 1
j = ActiveDocument.Tables(1).Rows.Count
 
Set oTbl = ActiveDocument.Tables(1)
 
For i = 1 To j
    Debug.Print oTbl.cell(i, 1).Range.Text
    If UCase(Left(oTbl.cell(i, 1).Range.Text, 1)) = "Y" Then
        stPage = stPage & Left(oTbl.cell(i, 2).Range.Text, (Len(oTbl.cell(i, 2).Range.Text) - 2)) & ","
    End If
 
Next i
 
ActiveDocument.PrintOut Pages:=stPage
 
Debug.Print stPage
 
 
End Sub
Essaie ce code pour voir
__________________
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 actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2007, 16h14   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 17
Points : 4
Points : 4
Par défaut Macro word

Merci pour cette macro
Je ne comprend malheureusement pas sa gestion
pour info ci joint le document le tableau avec les Y se situe page 2
et les documents à imprimer sont dans le même dossier
Merci de votre aide précieuse
Fichiers attachés
Type de fichier : doc DOSSIER.doc (313,5 Ko, 3 affichages)
steffguibo 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 11h41.


 
 
 
 
Partenaires

Hébergement Web