Bonjour,
j'ai créé une macro (avec l'aide des infos trouvés sur le forum ) qui me permet de remplir des signets Word à partir d'Excel... rien de bien original, cela fonctionne très bien sous les PC avec office 365, mais quand je veux l'utiliser sur un PC équipé de Office 2016 le document Word ne se remplit pas... (hormis les deux parties de copier/coller des tableaux)
je cherche mais ne trouve pas...
Une idée ??
Merci d'avance !!
j'ai créé une macro (avec l'aide des infos trouvés sur le forum ) qui me permet de remplir des signets Word à partir d'Excel... rien de bien original, cela fonctionne très bien sous les PC avec office 365, mais quand je veux l'utiliser sur un PC équipé de Office 2016 le document Word ne se remplit pas... (hormis les deux parties de copier/coller des tableaux)
je cherche mais ne trouve pas...
Une idée ??
Merci d'avance !!
VB:
Sub Creer_Word()
Dim WordApp As Object, WordDoc As Object, Rng As Object
'Dim WordAppli As Word.Application
Dim Rep As String, Ndf As String, Logo As String
Dim i As Integer, h As Integer, j As Integer
Dim cl As Integer, lg As Integer
Dim Total As Single
' -> minimise l'application Excel pendant la macro
Application.WindowState = xlMinimized
'Set WordAppli = GetObject("Word.Application")
Set WordApp = CreateObject("Word.Application") 'ouvre session word et le fichier voulu
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\Proposition_Commerciale_Wildix_Matrice.docx") 'ouvre document Word
WordApp.Visible = True 'word masqué pendant l'operation
On Error Resume Next
Application.DisplayAlerts = False
' -> Signets dans Word
With WordDoc
.Bookmarks("Raison_Sociale").Range.Text = [Client!B2].Text
.Bookmarks("RAISON_SOCIALE2").Range.Text = [Client!B2].Text
.Bookmarks("Raison_Sociale_Adresse").Range.Text = [Client!B3].Text
.Bookmarks("ADRESSE2").Range.Text = [Client!B3].Text
.Bookmarks("Ville").Range.Text = [Client!B4].Text
.Bookmarks("VILLE2").Range.Text = [Client!B4].Text
.Bookmarks("VILLE3").Range.Text = [Client!B4].Text
.Bookmarks("NOM2").Range.Text = [Client!B5].Text
.Bookmarks("Interlocuteur_Nom").Range.Text = [Client!B5].Text
.Bookmarks("Interlocuteur_Mail").Range.Text = [Client!B6].Text
.Bookmarks("Interlocuteur_Tel").Range.Text = [Client!B7].Text
.Bookmarks("Commercial_Mail").Range.Text = [Client!E6].Text
.Bookmarks("Commercial_Nom").Range.Text = [Client!E3].Text
.Bookmarks("Commercial_Tel").Range.Text = [Client!E7].Text
.Bookmarks("Expression_Besoin").Range.Text = [Client!B10].Text
.Bookmarks("LOC_MONTANT").Range.Text = [Calcul!N8].Text
.Bookmarks("ENTRE_COUT_HT").Range.Text = [Calcul!N7].Text
.Bookmarks("ENTRE_COUT_TTC").Range.Text = [Calcul!P7].Text
.Bookmarks("Nbr_Util").Range.Text = [Calcul!D76].Text
.Bookmarks("Nbr_Pass").Range.Text = [Calcul!L22].Text
.Bookmarks("Nbr_Cannaux").Range.Text = [Calcul!K22].Text
.Bookmarks("Nbr_BASIC").Range.Text = [Calcul!D76].Text
.Bookmarks("Nbr_ESS").Range.Text = [Calcul!D77].Text
.Bookmarks("Nbr_BUSI").Range.Text = [Calcul!D78].Text
.Bookmarks("Nbr_PREM").Range.Text = [Calcul!D79].Text
.Bookmarks("Nbr_B_INT").Range.Text = [Calcul!D47].Text
.Bookmarks("Nbr_B_EXT").Range.Text = [Calcul!D48].Text
.Bookmarks("Nbr_P_IP").Range.Text = [Calcul!K36].Text
.Bookmarks("Nbr_P_DECT").Range.Text = [Calcul!K46].Text
.Bookmarks("Nbr_Switches_Fournis").Range.Text = [Calcul!K66].Text
.Bookmarks("Nbr_Switches_Existants").Range.Text = [Client!B12].Text
.Bookmarks("Nbr_Appli_Smartphone").Range.Text = [Client!B13].Text
.Bookmarks("Nbr_Firewall").Range.Text = [Calcul!D84].Text
.Bookmarks("Nbr_Onduleur").Range.Text = [Calcul!D83].Text
.Bookmarks("Nbr_casque").Range.Text = [Calcul!K56].Text
.Bookmarks("Fonct_avancées").Range.Text = [Client!B14].Text
.Bookmarks("Date").Range.Text = [Client!E9].Text
.Bookmarks("Date2").Range.Text = [Client!E9].Text
.Bookmarks("Date3").Range.Text = [Client!E9].Text
.Bookmarks("Trunk").Range.Text = [Client!E12].Text
.Bookmarks("Trunk2").Range.Text = [Client!E12].Text
.Bookmarks("Opérateur").Range.Text = [Client!E13].Text
'=> Détails solution
' -> rend visible la feuille
Sheets("Synthèse_Financière").Visible = True
' -> selection de la feuille
Sheets("Synthèse_Financière").Select
' -> cache les lignes vides
For i = [A65536].End(xlUp).Row To 3 Step -1
If Application.WorksheetFunction.CountBlank(Range(Cells(i, 4), Cells(i, 4))) = 1 Then
Rows(i).EntireRow.Hidden = True
End If
Next i
' -> copie du tableau
Range("A1:F115").Select
Selection.Copy
' -> Recherche l'emplacement du signet où l'on collera le tableau
'WordAppli.Selection.HomeKey Unit:=wdStory
WordApp.Selection.Goto What:=wdGoToBookmark, Name:="details"
' -> Collage spéciale du tableau copié depuis excel
WordApp.Selection.Paste 'Special Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
' -> affiche à nouveau les lignes vides
Rows.EntireRow.Hidden = False
' -> Masque à nouveau la feuille
Sheets("Synthèse_Financière").Visible = False
' -> séléctionne à nouveau la feuille calculs
Sheets("Calcul").Select
'=> CONTRAT_DETAILS
' -> rend visible la feuille
Sheets("DETAILS_CONTRAT").Visible = True
' -> selection de la feuille
Sheets("DETAILS_CONTRAT").Select
' -> cache les lignes vides
For i = [A65536].End(xlUp).Row To 2 Step -1
If Application.WorksheetFunction.CountBlank(Range(Cells(i, 4), Cells(i, 4))) = 1 Then
Rows(i).EntireRow.Hidden = True
End If
Next i
' -> copie du tableau
Range("C2:D54").Select
Selection.Copy
' -> Recherche l'emplacement du signet où l'on collera le tableau
'WordAppli.Selection.HomeKey Unit:=wdStory
WordApp.Selection.Goto What:=wdGoToBookmark, Name:="CONTRAT_DETAILS"
' -> Collage spéciale du tableau copié depuis excel
WordApp.Selection.Paste 'Special Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
' -> affiche à nouveau les lignes vides
Rows.EntireRow.Hidden = False
' -> Masque à nouveau la feuille
Sheets("DETAILS_CONTRAT").Visible = False
' -> séléctionne à nouveau la feuille calculs
Sheets("Calcul").Select
End With
Set WordApp = Nothing
Set WordDoc = Nothing
WordDoc.Save 'si on veut fermer le document word en sauvegardant les données
WordApp.Visible = True 'affiche le document Word 'WordDoc.PrintOut 'si on veut imprimer
'WordApp.Quit 'ferme la session Word
End Sub