Bonsoir
Voici mon problème. J'ai un tableau sous word. Ce tableau a un nombre de lignes variables et ce nombre est dans tous les cas important. Ce tableau comporte une ligne d'en-tête. Je veux imprimer ce tableau mais morceau par morceau. Chaque morceau du tableau commence toujours par la ligne d'en-tête. Par exemple, je veux imprimer:
lignes 1 à 14
ligne1+lignes 15 à 45
ligne 1+ lignes 46 à 82
etc...
Une solution sommaire consiste à masquer les lignes qu'on ne veut pas imprimer. Mais cette méthode est vraiment lourde car il faut sélectionner les lignes à masquer et si ce nombre est élevé, ce n'est pas pratique.
J'avais posté un message sur le forum programmation où j'ai obtenu un code que j'ai simplifié ainsi:
MaLigne = Array(2, 3, 4, 5, 16, 17, 18, 19, 20) 'numéro de ligne à masquer
ReDim Ligne(UBound(MaLigne) + 1, 2)
For i = 0 To UBound(MaLigne)
Ligne(i + 1, 0) = MaLigne(i) 'remplir le tableau
Next i
For i = 1 To UBound(MaLigne) + 1
ActiveDocument.Tables(1).Rows(Ligne(i, 0)).Select 'Selectionne la ligne du tableau et ramène la police à 1 (0 = erreur)
With Selection.Font
.Hidden = True
End With
Next i
Ce code me permet de masquer les lignes 2,3,4,5,16,17,18,19 et 20 et de pouvoir imprimer les lignes 1+les lignes 6 à 15. Cette méthode est nettement plus pratique puisque je peux masquer les lignes en saisissant leur n° dans mon code et en outre de masquer des lignes disjointes. Ce code fonctionne sur word 97. Mais ce code n'est pas parfait. En effet, si le nombre de lignes à masquer est important, il faut saisir tous les n° dans le code. S'il faut masquer 150 lignes, ça devient vite lourd.
Ma question est donc la suivante. Connaissez-vous une méthode (mise à part un copier/coller sur Excel) qui peut me permettre d'imprimer mon tableau word avec ma ligne d'en-tête+les lignes de mon souhait,sachant que ces lignes se suivent toujours sauf la ligne d'en-tête: amélioration du code (par exemple instruction VBA qui permet de sélectionner les lignes 2 à 5 et de 16 à 20 dans mon exemple et de les masquer) ou autre méthode?
Merci
Message édité par TAM136 le 30-08-2006 à 13:24:58