Philippe LAMACHE
XLDnaute Junior
Bonjour à tous,
Je me lance dans la récupération de tableaux Word vers Excel.
(Capture du fichier Word)
Après quelque recherches sur le Net, Voici ce que j'ai réussi à "Bricoler":
Mais comme je l'explique dans mon code par des commentaires, j'ai un souci de sélection.
Quelqu'un peut-il me venir en aide ?
Par avance, merci.
Je me lance dans la récupération de tableaux Word vers Excel.
(Capture du fichier Word)
Après quelque recherches sur le Net, Voici ce que j'ai réussi à "Bricoler":
VB:
Sub copieTableauWordVersExcel()
Dim WordApp As WORD.Application
Dim WordDoc As WORD.Document
Dim sStr As String, sStr1 As String, sNom As String
Dim oTbl As Table
sNom = ThisWorkbook.Path & "\" & "2016- 24556.doc"
Set WordApp = New WORD.Application
Set WordDoc = WordApp.Documents.Open(Filename:=sNom, ReadOnly:=True)
WordApp.Visible = True
WordApp.ActiveWindow.View.Zoom.Percentage = 100
WordApp.Selection.HomeKey wdStory
WordApp.Selection.MoveStart Unit:=5, Count:=100
sStr = "ANNEXE 1 :"
With WordApp.Selection.Find
.Forward = True
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Execute FindText:=sStr
End With
' Là, je sélectionne le titre complet de mon paragraphe
WordApp.Selection.Expand wdParagraph
' Et, jusque là, ça va, c'est après que cela se gâte pour moi
AA = WordApp.Selection.Range.Text
BB = WordApp.Selection.Information(wdFirstCharacterLineNumber)
' Ce qu'il me faudrait c'est le n° de ligne depuis le début du document Word (comme ci-dessous)
' ou, l'idéal, sélectionner tout entre mes 2 titres (ANNEXE 1 et ANNEXE 2)
'BB = WordApp.Selection.Range(Start:=0, End:=Selection.Start).ComputeStatistics(wdStatisticLines)
' Il y a une erreur que je n'arrive pas à corriger
WordApp.Selection.MoveRight Unit:=wdTables, Count:=1, Extend:=wdExtend
WordApp.Selection.HomeKey wdStory
WordApp.Selection.MoveStart Unit:=5, Count:=100
sStr1 = "ANNEXE 2 :"
With WordApp.Selection.Find
.Forward = True
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Execute FindText:=sStr1
End With
WordApp.Selection.Expand wdParagraph
CC = WordApp.Selection.Range.Text
DD = WordApp.Selection.Information(wdFirstCharacterLineNumber)
'DD1 = WordApp.Selection.Range(Start:=0, End:=Selection.Start).ComputeStatistics(wdStatisticLines)
'Là j'espérais sélectionner tout entre mes 2 titres (ANNEXE 1 et ANNEXE 2) mais pas moyen
'MaSel = WordApp.Selection(AA, CC)
For Each oTbl In WordApp.Selection.Tables
oTbl.Select
' Puis, quand ma "selection" fonctionnera ... Je pourrais copier mes tableaux vers Excel
Next oTbl
Set WordApp = Nothing
End Sub
Mais comme je l'explique dans mon code par des commentaires, j'ai un souci de sélection.
Quelqu'un peut-il me venir en aide ?
Par avance, merci.