Sub ExcelVersWord()
Dim Tbl()
Dim Plage As Range
Dim AppWord As Object
Dim Doc As Object
Dim TableWd As Object
Dim I As Integer
Dim J As Integer
With Worksheets("module interrogation")
'défini la plage pour la 1ère colonne ici, colonne "A"
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
'dimensionne le tableau à 2 dimensions (pour les 2 colonnes)
'Attention, ici les 2 colonnes doivent avoir le même nombre de cellules
'sinon, redimensionner une nouvelle fois le tableau avec "Preserve"
ReDim Tbl(1 To 2, 1 To Plage.Count)
'stocke les valeurs dans la 1ère dimension
For I = 1 To Plage.Count
Tbl(1, I) = Plage(I)
Next I
'défini la plage pour la 2ème colonne ici, colonne "C"
Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))
'stocke les valeurs dans la 2ème dimension
For I = 1 To Plage.Count
Tbl(2, I) = Plage(I)
Next I
End With
'crée une instance de Word
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
'ajoute un document
Set Doc = .Documents.Add
With Doc
'crée la table Word aux dimensiuon du tableau
Set TableWd = .Tables.Add(.Range, _
UBound(Tbl, 2), _
UBound(Tbl, 1), _
1, _
1)
With TableWd
'ajoute les valeurs
For I = 1 To UBound(Tbl, 2)
For J = 1 To UBound(Tbl, 1)
.Cell(I, J).Range.Text = Tbl(J, I)
Next J
Next I
End With
End With
End With
End Sub