Tableau word non reconnu via Tables

lau-vaya -  
 lau-vaya -
Bonjour,

Je dispose d'un fichier word contenant un tableau. J'aimerais transférer ce tableau sur Excel, et j'utilise pour cela une macro dont le code est le suivant:

Sub import_table_a1()

Dim wb As Workbook
Dim ws As Worksheet
Dim sChemin As String
Dim sNomFichier As String
Dim WApp As Object, WDoc As Object
Dim i As Integer, j As Integer
Dim Cible As Variant

Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
sChemin = ThisWorkbook.Path & "\" ' le fichier Word se trouvent dans le même répertoire que le fichier Excel

sNomFichier = "test.docx"

Set WApp = CreateObject("Word.Application")
WApp.Visible = True
Application.ScreenUpdating = False

Set WDoc = WApp.Documents.Open(sChemin & sNomFichier) 'ouvre le document Word

For i = 1 To WDoc.Tables(1).Rows.Count
For j = 1 To WDoc.Tables(1).Columns.Count
Cible = WDoc.Tables(1).Columns(j).Cells(i)

ws.Cells(i, j) = _
Application.WorksheetFunction.Substitute(Cible, vbCr, vbLf)
ws.Cells(i, j) = _
Left(ws.Cells(i, j), Len(ws.Cells(i, j)) - 1)
Next j
Next i

Application.ScreenUpdating = True
WApp.Quit

End Sub


Le message d'erreur suivant s'affiche: "The Requested member of the collection doesn't exist" à propos de la ligne "For i = 1 To WDoc.Tables(1).Rows.Count", ce qui signifie que la requête n'identifie pas de tableau dans mon document word.

D'où ma question: pourquoi mon tableau sous word n'est-il pas reconnu, et comment faire pour qu'il le soit? Je n'ai pas trouvé de cas similaire au mien en cherchant sur les forums...

Vous trouverez mon document word ici:
https://www.dropbox.com/s/8sbln2bz855o1zs/test.docx?dl=0

Je vous remercie par avance de votre aide!!
Bonne journée,
Laurène

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    suggestion:
    remplacer
    WDoc.Tables(1)

    par
    WDoc.Shapes(1).TextFrame.TextRange.Tables(1)

    parce que ta table est dans une "shape"
    tu as en fait deux tables dans ton document, la seconde est accessible via:
    WDoc.Shapes(2).TextFrame.TextRange.Tables(1)
    1
    1. lau-vaya
       
      Bonjour yg_be,

      Merci, cela marche parfaitement !! En effet, ma table est dans une shape, je n'avais pas fait attention à ce détail (qui change tout).

      Merci beaucoup, cela m'enlève une bonne épine du pied :-)
      Bonne journée!

      Laurène
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Voici un exemple avec deux manières d'opérer:

    Importer tous les tableaux ou choisir le tableau à importer.

    Tous ce fait par raccourci clavier.

    Un document Word est disponible pour l'exemple avec le classeur Excel.

    Il suffit de dézipper le fichier.

    http://www.cjoint.com/c/GEhkoT6rODQ

    A adapter à votre convenance.
    0
    1. lau-vaya
       
      Bonjour,

      Malheureusement, cela ne répondait pas à ma question qui était que mon tableau n'était pas repéré par Tables. Néanmoins merci pour votre fichier, il pourra m'être utile maintenant que yg_be m'a débloquée :-)

      Laurène
      0