Bonsoir à tous
Je vous expose mon problème. J'ai un tableau sur word.Le nombre de colonnes est déterminé. Le nombre de lignes est variable. Je cherche à fractionner mon tableau en plusieurs tableaux. Chacun des nouveaux tableaux doit avoir le même en-tête, celui de départ. Sur excel, pas de problème avec les filtres.
J'utilise le code suivant. Il s'applique à un tableau exemple de 35 lignes. Je cherche à obtenir 7 tableaux (7 parce qu'il y a 7 groupes) qui ne comptent pas nécessairement le nombre de lignes. Ainsi mon 1er tableau compte 6 lignes, mon second tableau compte 10 lignes. Ce nombre comprend l'en-tête.Connaîtriez-vous exceptée, un passage par excel (copier/coller), une méthode plus simple qui me permet d'aboutir au même résultat?
En effet, je dois repérer les groupes qui m'intéressent et corriger manuellemnt mon code ce qui n'est pas pratique.En effet, dans mon exemple, j'ai un tableau de 35 lignes mais je peux avoir un tableau initial de 250 lignes,mon 1er tableau peut avoir 42 lignes et avoir non pas 7 tableaux mais 3.
Je précise mais les instructions n'apparaîssent pas ici que je cherche ensuite à imprimer ces tableaux séparément (7 pour mon exemple).
Rows(1) représente la ligne d'en-tête.
Sub FractionnerTableau()
Set objTable = ActiveDocument.Tables(1)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(7).Select
Selection.Paste
objTable.Rows(7).Select
Selection.SplitTable
'Fractionner après la 6eme ligne
'J'ai ainsi un 1er tableau de 6 lignes
End If
Set objTable = ActiveDocument.Tables(2)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(11).Select
Selection.Paste
objTable.Rows(11).Select
Selection.SplitTable
'J'ai un second tableau,etc...
End If
Set objTable = ActiveDocument.Tables(3)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(5).Select
Selection.Paste
objTable.Rows(5).Select
Selection.SplitTable
End If
Set objTable = ActiveDocument.Tables(4)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(12).Select
Selection.Paste
objTable.Rows(12).Select
Selection.SplitTable
End If
Set objTable = ActiveDocument.Tables(5)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(3).Select
Selection.Paste
objTable.Rows(3).Select
Selection.SplitTable
End If
Set objTable = ActiveDocument.Tables(6)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(8).Select
Selection.Paste
objTable.Rows(8).Select
Selection.SplitTable
End If
Set objTable = ActiveDocument.Tables(7)
If objTable.Rows.Count > 2 Then
objTable.Rows(1).Select
Selection.Copy
objTable.Rows(3).Select
Selection.Paste
objTable.Rows(3).Select
Selection.SplitTable
End If
End Sub
En espérant avoir été clair, je vous souhaite une bonne fin de soirée et une bonne reprise.