1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| Sub selections_copies()
'
'nécessite d'activer la référence
'Microsoft Word xx.x Object Library
Dim WordApp As Object
Dim WordDoc As Object
Dim Fichier As String
Dim themes(6)
Dim valeur As String
Dim TabPL As Object
Dim TabFA As Object
'le document Word est supposé fermé avant le lancement de la macro
Fichier = "E:\DAT.doc"
'creation session Word
Set WordApp = CreateObject("Word.Application")
'pour que word reste masqué pendant l'opération
WordApp.Visible = False
'ouverture du fichier Word
Set WordDoc = WordApp.Documents.Open(Fichier)
'Représente le numero du tableau "produit logciel" dans le document
Set TabPL = WordDoc.Tables(12)
themes(1) = "système d'exploitation"
themes(2) = "Base de données"
themes(3) = "WAS, Serveurs Web"
themes(4) = "Service d'infrastructure"
themes(5) = "Environnement de développement"
themes(6) = "Autres"
'....Boucle sur les Themes
For i = 1 To UBound(themes)
With WordApp.Selection.Find
.Replacement.ClearFormatting
.ClearFormatting
.Text = themes(i)
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute
End With
With WordApp
.Selection.MoveRight Unit:=wdCell
valeur = Replace(.Selection, Chr(13), Chr(10))
ActiveSheet.Cells(i + 1, 1) = valeur
If i <> 4 Then
.Selection.MoveRight Unit:=wdCell
valeur = Replace(.Selection, Chr(13), Chr(10))
ActiveSheet.Cells(i + 1, 2) = valeur
End If
If i = 5 Then
.Selection.MoveRight Unit:=wdCell, Count:=3
valeur = Replace(.Selection, Chr(13), Chr(10))
ActiveSheet.Cells(i + 1, 3) = valeur
.Selection.MoveRight Unit:=wdCell
valeur = Replace(.Selection, Chr(13), Chr(10))
ActiveSheet.Cells(i + 1, 4) = valeur
End If
End With
Next i
'Représente le numero du tableau "produit logciel" dans le document
Set TabFA = WordDoc.Tables(7)
'Boucle sur les 2 premieres LIGNES du tableau
For i = 1 To 8
'Boucle sur les 2 premieres CELLULES de chaque colonne
For j = 3 To 4
'Importe les données du tableau dans la feuille active
ActiveSheet.Cells(12, 8) = Tableau.Columns(i).Cells(j)
Next j
Next i
WordApp.Quit
End Sub |
Partager