Forum Clubic

Tableaux sous word - modification du type de tableau

bonjour je voudrais faire l’opération suivante ,transformer 14 lignes et deux colonnes en 14 colonne et deux lignes ,dans un fichier word qui a 2099 tableaux.
merci d’avance
voir fig.
NOM : PIERRE
QA BICEC
QB STA
QC 2
QD 2
QE 3
QF 4
QG 2
QH /
QI 3
QJ 1
QK 0
QL 5263221
QM MM

NOM : BEBERT
QA TOTAL
QB AGT
QC 2
QD 2
QE 1
QF 5
QG 3
QH /
QI 2
QJ 1
QK 0
QL 9062240
QM MM

NOM : CEDRIC
QA CENTRE
QB AGT
QC 2
QD 1
QE 1
QF 4
QG 1
QH COMMERCANT
QI /
QJ 0
QK 0
QL 9361501
QM MM

CEDRIC CENTRE AGT 2 1 1 4 4 COMMERCANT / 0 0 9361501 MM
BEBERT TOTAL AGT 2 2 1 5 3 / 2 1 1 9062240 MM
PIERRE BICEC STA 2 2 3 4 2 / 3 1 0 5263221 SOEUR

tournes ton écran de 90°

Si tu permets ,je n’ai rien capter .Merci dêtre clair.
NB:j’ai 2099 tableaux à transformer en 1 seul.

je reflechis…

Merci ,c’est béta bloquant ,j’ai éssayé les outils classiques de Word (Fusion ,fractionnement etc…)sans plus.je peux éventuellement t’envoyer le fichier si tu veux voir la gueule du truc…
Merci

Hello, ce qui me semble le plus simple… :confused: ,
c’est de copier tout les tableaux sous Excel, de créer la macro qui va bien pour récuperer tes données et les mettre ou tu veux dans un nouveau tableau et de recopier ce tableau dans word.

popolof-> au prochain post de ce genre, je t’offre quelques jours de vacances

Normalement, tu peux transposer tes tableaux (ie: c’est l’opération sur les matrices qui consiste à prendre les lignes pour des colonnes, etc).

Le pb c’est que Excel ne gère pas plus de 65555 lignes ,ayant 14 lignes pour un fichier de 6200 tableaux cela fait plus de 80000 lignes.je peux faire plusieurs fichiers et les copier sous excel (un peu lourd mais bon) ensuite voir pour la macro.merci de me donner des indications pour la macro Excel)
Merci

ben pour la macro dans excel, si on considère une ligne blanche entre chaque tableau.
en partant de la premiere ligne, toutes les 16 lignes tu as un nom, tu prend la valeur que tu mets dans un nouveau tableau à la ligne précédente +1, etcetc…

un pro des macros te fait ca en quelques minutes, mais bon je n’ai pas le temps et je ne suis pas pro, j’en ai pour la journée, Dsl

On peut le faire avec des macros sous word:


For Each t In ActiveDocument.Tables //tous les tableaux du document
While i < t.Rows.Count //boucle sur les lignes
While j < t.Columns.Count //boucle sur les colonnes
Documents("autredoc.doc").Tables(1).Cell(i, j).Range.InsertBefore(t.Cell(i, j).Range.Text)
j = j + 1
Wend
i = i + 1
Wend
Next

ps: jeanguy-> je te conseille d’aller acheter quelques kilos d’humour, t’en a besoin

Il y a plus simple, j’ai pas pu poster ca tout à l’heure car le forum marchait pas (chez moi)…

ca marche sous excel :

copier le tout
faire "collage spécial" et choisir "transposer" et voilà.

t’inquietes, de l’humour j’en ai plein mon sac [:kramoc]

quand on participe dans un sujet, on peut se permettre une petite note d’humour, mais en première réponse à un problème, non. (et l’interessé ne l’a également pas pris sur un ton humoristique)

débat clos, on arrête de pourrir ce topic, si ce n’est pas encore clair, c’est par mp que ça se passera ensuite :jap:

Je pense avoir une solution:

cette macro est à insérer dans le .doc en question, a l’éxecution, elle crée un nouveau .doc avec les elements dans un nouveau tableau:

Attention, ca plantera si un tableau n’est pas de dimention 2x14

Sub macro1()

Dim newdoc, currentdoc As Document
Dim mytable As Table
Dim myrow As Row
Dim c As Cell
Dim cpt As Integer

Set currentdoc = ActiveDocument
Set newdoc = Documents.Add
With newdoc
    .Content.Font.Name = "Arial"
    .SaveAs FileName:="Sample.doc"
End With

Set mytable = newdoc.Tables.Add(Selection.Range, 1, 14)

For Each t In currentdoc.Tables
Set myrow = mytable.Rows.Add(BeforeRow:=mytable.Rows(mytable.Rows.Count))
cpt = 1
For Each c In myrow.Cells
   c.Range.InsertAfter (t.Cell(cpt, 2).Range.Text)
   cpt = cpt + 1
Next c
Next t
End Sub