Tableau word non reconnu via Tables

Fermé
lau-vaya - 5 mai 2017 à 15:38
 lau-vaya - 8 mai 2017 à 09:56
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


A voir également:

2 réponses

yg_be Messages postés 23233 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 septembre 2024 Ambassadeur 1 538
Modifié le 7 mai 2017 à 14:07
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
7 mai 2017 à 12:19
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
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