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 02/04/2008, 16h42   #1
Membre habitué
 
Avatar de scully2501
 
Inscription : janvier 2004
Messages : 169
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2004
Messages : 169
Points : 101
Points : 101
Envoyer un message via MSN à scully2501
Par défaut Derniere ligne d'une page word

Bonjour,

Je cherche une solution dont je n'ai pas trouvé de réponse depuis un moment.

Je copie automatiquement un grand tableau d'excel sous word.
Ce tableau ne dispose que de bordure externe.
Comme convenu cela se colle sur plusieurs page sous word.

J'aimerais pouvoir mettre une bordure à chaque fin de page sous word.

Mais je ne vois pas quel code VBA sous Word utilisé pour pouvoir mettre une bordure à chaque de fin de page.
Tous en sachant que la hauteur de chaque page est différente donc je ne peux me fier à la hauteur des pages Word.

Merci d'avance de vos réponses

Cordialement
__________________
C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.
scully2501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 17h30   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 366
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 366
Points : 29 288
Points : 29 288
Essaie ceci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Test()
Dim oTab As Table
Set oTab = ActiveDocument.Tables(1)
With oTab.Borders(wdBorderBottom)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTab.Borders(wdBorderTop)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTab.Borders(wdBorderLeft)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTab.Borders(wdBorderRight)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
 
End Sub
Je viens d'essayer sur une table étalée sur plusieurs pages et j'ai bien une bordure pour chaque morceau de table.

Récupérer la dernière ligne d'une page est pas aisé.
__________________
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 02/04/2008, 18h08   #3
Membre habitué
 
Avatar de scully2501
 
Inscription : janvier 2004
Messages : 169
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2004
Messages : 169
Points : 101
Points : 101
Envoyer un message via MSN à scully2501
Merci pour ta réponse

je vais testé cela.

Comme toi je suis parfaitement d'accord:

Récupérer la dernière ligne d'une page est pas aisé


Etant prestataire, je suis la pour répondre au exigence du chef de projet qui répond au exigence du client.
__________________
C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.
scully2501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 18h25   #4
Membre habitué
 
Avatar de scully2501
 
Inscription : janvier 2004
Messages : 169
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2004
Messages : 169
Points : 101
Points : 101
Envoyer un message via MSN à scully2501
Je viens de tester le code et cela ne marche pas comme voulu.

Le tableau est coupé sur deux pages mais c'est considéré comme un seul tableau donc les bordures ne se mettent pas à chaque fin de page, ils entoures le tableau entier.

Ci joint avec un exemple de tableau sans les données bien sur.

La où il y des xxxxxxx il faudrait une bordure bas.
Fichiers attachés
Type de fichier : doc exemple tableaux.doc (127,0 Ko, 1 affichages)
__________________
C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.
scully2501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 20h37   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 366
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 366
Points : 29 288
Points : 29 288
Je vais mettre le code que j'ai utilisé et je vais tenter une explication

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Sub TestTable()
Dim oTbl As Table
For Each oTbl In ActiveDocument.Tables
With oTbl
    .Borders(wdBorderTop).LineStyle = wdLineStyleNone
    .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
    .Borders(wdBorderBottom).LineStyle = wdLineStyleNone
    .Borders(wdBorderRight).LineStyle = wdLineStyleNone
    .Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
    .Borders(wdBorderVertical).LineStyle = wdLineStyleNone
    .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
    .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
End With
Next oTbl
 
For Each oTbl In ActiveDocument.Tables
With oTbl.Borders(wdBorderBottom)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Borders(wdBorderTop)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Borders(wdBorderLeft)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Borders(wdBorderRight)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
 
With oTbl.Rows(1).Borders(wdBorderBottom)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(1).Borders(wdBorderTop)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(1).Borders(wdBorderLeft)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(1).Borders(wdBorderRight)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
 
With oTbl.Rows(2).Borders(wdBorderBottom)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(2).Borders(wdBorderTop)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(2).Borders(wdBorderLeft)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
With oTbl.Rows(2).Borders(wdBorderRight)
    .LineStyle = wdLineStyleSingle
    .LineWidth = wdLineWidth100pt
End With
 
 
Next oTbl
 
End Sub
Le premier code que j'ai mis ne fonctionne pas parce que certaines bordures existent déjà.
Si tu supprimes les bordures et que tu les remets ensuite, ça fonctionne.

Pour les deux premières lignes, j'ai traité les lignes, mais ce sont les cellules qu'il faut traiter.

Si tu bloques, fais signe.
__________________
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 03/04/2008, 10h14   #6
Membre habitué
 
Avatar de scully2501
 
Inscription : janvier 2004
Messages : 169
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2004
Messages : 169
Points : 101
Points : 101
Envoyer un message via MSN à scully2501
Merci je vais voir ce que je peux faire car je ne peux enlever les bordures.

Le problème se pose sur d'autre tableaux où les bordures sont spécifiques.

Merci de ton aide.
__________________
C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.
scully2501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2008, 10h16   #7
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 366
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 366
Points : 29 288
Points : 29 288
Tu peux toujours les enlever et ensuite les remettre.
__________________
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 03/04/2008, 11h11   #8
Membre habitué
 
Avatar de scully2501
 
Inscription : janvier 2004
Messages : 169
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2004
Messages : 169
Points : 101
Points : 101
Envoyer un message via MSN à scully2501
Ok merci pour ton aide.
Ca marche
__________________
C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.
scully2501 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 08h21.


 
 
 
 
Partenaires

Hébergement Web