Excel/Word - 1 tableau sur 2 pages

Résolu
Groargreugro Messages postés 29 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 12 décembre 2006 - 11 avril 2006 à 10:27
Groargreugro Messages postés 29 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 12 décembre 2006 - 11 avril 2006 à 12:15
A partir d'Excel, j'alimente les cases d'un tableau de 21 lignes dans Word à partir de données prealablement rentrées par des utilisateurs.

Une case du tableau, au final, peut avoir entre 1 et X lignes (Ce sont surtout des commentaires et des observations, alors selon l'inspiration du gars, on peut se retrouver avec juste "OK" ou 10 lignes de commentaires.

Du coup mon tableau a une taille extremement variable et peut chevaucher la page suivante. Cela peut etre assez moche si la coupure se produit au milieu d'une ligne du tableau :
exemple : j'ai une ligne du tableau "Mesure" qui va contenir :
a1 : 30%
a2 : 0,05%
a3 : 58%
et je vais avoir a1 en bas de ma premiere page
a2 et a3 en haut de la 2nde alors que c'est une meme ligne de mon tableau

Donc est ce qu'il y aurait un moyen de parcourir mon tableau,
Si "a la ligne x, les x premiere ligne du tableau > une taille Y", alors
On le split
On insere un saut de page
fin si
??

Merci pour votre aide et bons oeufs Kinder.

3 réponses

Groargreugro Messages postés 29 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 12 décembre 2006
11 avril 2006 à 12:12
Je me réponds (Ca pourra servir à d'autre, j'ai vu que plein de gens chercher comment reperer le numéro de page courant). C'est améliorable sur plusieurs points mais ça marche.

Rappel pour les néophytes : c'est une macro Excel qui écrit vers Word (sous Word il faut enlever le "WrdApp." et ca devrait marcher)

With WrdApp.ActiveDocument.Tables(Num_Tableau)
Num_page1 = .Cell(1, 1).Range.Information(wdActiveEndPageNumber)
For i = 2 To .Rows.Count
Num_page2 = .Cell(i, 1).Range.Information(wdActiveEndPageNumber)
If Num_page1 <> Num_page2 Then
.Cell(i, 1).Select
WrdApp.Selection.SplitTable
WrdApp.Selection.InsertBreak Type:=wdPageBreak
Num_Tableau = Num_Tableau + 1
Exit For
End If
Num_page1 = Num_page2
Next i
End With
3
Groargreugro Messages postés 29 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 12 décembre 2006
11 avril 2006 à 10:39
Peut etre qu'il serait plus simple de parcourir mon tableau et si il y a un changement de page alors le couper.

mais je ne sais pas faire non plus.
Je cherche, mais si quelqu'un sait, je suis pas contre ;)
0
Groargreugro Messages postés 29 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 12 décembre 2006
11 avril 2006 à 12:15
Présicion : Le "Num_Tableau = Num_Tableau + 1" ne sert que si on parcours tous les tableaux du document. Il faut alors inclure le code dans une boucle plus globale.

voilà, voilà.
0
Rejoignez-nous