Import et mise en forme VBA de données Excel
Bonjour !
Déjà merci à vous car depuis 2 semaines que je dois programmer pour mon travail je parcours votre forum et j'y ai trouvé quasiment réponse à toutes mes questions. J'ai construit entre autres une macro qui extrait des données depuis mon classeur excel et les copie dans un .docx (préalablement enregistré sous un autre nom pour ne pas perdre le document modèle. Le tableau est ensuite mis en forme.
Et là je suis perplexe : ça marche... une fois sur deux !
Sinon il m'affiche :
"Erreur d'exécution '462'
Le serveur distant n'existe pas ou n'est pas disponible"
Le débogage indique alors la ligne :
".Rows.SetHeight RowHeight:=InchesToPoints(0.3), HeightRule:=wdRowHeightExactly"
Voyez-vous où peut se situer le problème ??
D'avance merci beaucoup !
Code:
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
| Sub export_word()
'
' export_word Macro
'
'
' Copie des données dans la feuille excel
Worksheets("Disponibilité poinçons").Activate
Union(Range("A1:A96"), Range("D1:A96")).Copy
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
' Ouverture du fichier modèle et enregistrement sous un autre nom (pour ne rien écraser)
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open _
("C:\Users\Stagiaire.soud2\Documents\doc_type_essai.docx", ReadOnly:=False)
FileSaveName = Application.GetSaveAsFilename(fileFilter:="Word Files (*.doc), *.doc")
If FileSaveName <> False Then
WordDoc.SaveAs FileSaveName
End If
' Collage dans le doc word
' positionne le curseur au signet "ici"
WordApp.Selection.Goto What:=wdGoToBookmark, Name:="ici"
WordApp.Selection.Paste
'Mise en forme du tableau
Set tablo = WordDoc.Tables(1)
With tablo
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleDot
.Borders(wdBorderVertical).LineStyle = wdLineStyleDot
.Rows.SetHeight RowHeight:=InchesToPoints(0.3), HeightRule:=wdRowHeightExactly
.Rows(1).SetHeight RowHeight:=InchesToPoints(0.6), HeightRule:=wdRowHeightExactly
End With
End Sub |