Marcro et Fusion d'un tableau Excel dans Word

Marcro et Fusion d'un tableau Excel dans Word - VB/VBA/VBS - Programmation

Marsh Posté le 23-09-2005 à 14:19:53    

Salut @ tous,
 
je souhaite faire une macro qui me prend un tableau Excel (certaine colones) et qui me copie ces colones dans un tableau word.
Seulement en Word je ne sais pas comment donner de nom à mon tableau pour dire à Excel c'est ce tableau là dans lequel tu copies les cellules voulues.
 
Si quelqu'un sait ou à une idée ça serait vraiment sympa, car la je cherche depuis un bout de temps, et dans les tutoriaux y pas grand chose là dessus.
 
Merci
 
pretorienx

Reply

Marsh Posté le 23-09-2005 à 14:19:53   

Reply

Marsh Posté le 25-09-2005 à 14:45:37    

Bon cet exemple est fait avec 3 tableaux dans word ( 1 de 20 lignes, 5 colonnes, un de 2 lignes, 5 colonnes et un de 10 lignes et 5 colonnes )
 
Le tout est d'avoir le même parcours dans Excel que dans word !
 
A savoir que dans word, le premier tableau à l'indice 1 le deuxième 2...etc..
 
J'espère que ca t'aideras..
 
@+ Fred
 
 
 
 
 
Dim maxRows, maxCols, c, t, i, j As Integer
Dim Rng As Range
Dim NbreTableau As Integer
 
 
   
maxRows = 20
maxCols = 5
NbreTableau = 3
 
 
Set Word = CreateObject("Word.Application" )
docWord = Word.Documents.Open("C:\doc1.doc" )
Word.DisplayAlerts = False
Word.Visible = True
     
 
t = 1 ' Tableau Word
c = 1 ' Colone Word
i = 0 ' Colone Excel
j = 0 ' Ligne Excel
ActiveWorkbook.Sheets("Feuil1" ).Select
Set Rng = Feuil1.Range("A1" )
   
While t <= NbreTableau
    While c < maxCols
        j = 0
' C'est ici que tu as les colonnes et tableaux dans word
        For Each acell In Word.ActiveDocument.Tables(t).Columns(c).Cells
            Rng.Offset(j, i).Select
            acell.Range.Text = Rng.Offset(j, i).Value
            j = j + 1
        Next acell
        i = i + 1
        c = c + 1
    Wend
    If c >= maxCols Then
        Select Case t
            Case 1:
                ActiveWorkbook.Sheets("Feuil2" ).Select
                Set Rng = Feuil2.Range("A1" )
                maxRows = 2
                maxCols = 5
            Case 2:
                ActiveWorkbook.Sheets("Feuil3" ).Select
                Set Rng = Feuil3.Range("A1" )
                maxRows = 10
                maxCols = 5
        End Select
         t = t + 1
         c = 1
         i = 0
    End If
    j = 0
     
Wend
   
docWord.Save
docWord.Close
Word.Quit

Reply

Marsh Posté le 25-09-2005 à 14:47:43    

Nota :
 
Tu peux mettre en commentaire la ligne
Rng.Offset(j, i).Select  
 
Ca ne sert qu'a voir là ou tu en es dans excel...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed