Public fic, fic_sig As String
Sub Creation_BC_OP()
'nécéssite d'activer la référence Microsoft Word xx.x Object Library
Dim i&, j&, x1&, pos&         ' Long
Dim NomDoc$, celle_qu$        ' String
Dim s As Object
Dim Chemin As String
Dim nom_societe As String
Dim WordApp As Word.Application ' NE PAS OUBLIER DE PRECISER WORD pour EXCEL
Dim WordDoc As Word.Document
Dim signet As Word.Bookmark
Dim rg As Word.Range
Dim Img As Word.InlineShape
               '   "     "
 
Application.ScreenUpdating = False
'*************************************************
'où est le document Word
    Chemin = ThisWorkbook.Path & "\"                    ' MODIFIER SI DOC # REPERTOIRE DE CE FICHIER EXCEL
'Le nom du fichier Word à ouvrir
'Fichier = "Controle.docx"                           ' NOM DU FICHIER SQUELETTE WORD
'Chemin et nom du fichier Image à insérer
    FichierImage = ThisWorkbook.Path & "\" & "AN1 AP1 SIG.png"
    nom_societe = Cells(1, 5).Value ' le nom de la sociéte qui est en E1
    Cells(4, 2).Select ' on positionne le curseur dans la cellule B4
    Application.ScreenUpdating = False ' bloc de defilement ecran
' ON REMPLI SEULEMENT LA PAGE DE GARDE DU DOC WORD
'**************************************************
    num_actif_onglet = ActiveSheet.Index ' recupere de nom de l'onglet actif
    dg = Cells(Rows.Count, 1).End(xlUp).Row + 1 'defini le nombre de lignes à traiter
    Num_dos = 0
    For x = 4 To dg ' boucle pour traiter toutes les lignes du doc
        indic = Cells(x, 1)
            Select Case indic
                Case "fait"
                    GoTo suite1
                    ' test si des croix dans le cases interdites
                Case "x"
                    'Set WordApp = CreateObject("word.application")
                            ' Déclaration du traitement d’erreur initial
                        On Error Resume Next
                    ' Initialisation de Word
                        Set WordApp = GetObject(, "Word.Application")
                        If Err <> 0 Then
                            Err.Clear
                            Set WordApp = CreateObject("Word.Application")
                            If Err <> 0 Then
                                MsgBox "La macro n'a pas pu ouvrir !", vbExclamation
                                End
                            End If
                        End If
                    On Error GoTo 0
                    ' laisser l'application visible
                        WordApp.Visible = True
                    'Chemin =  "C:\Users\JM-essai\"
                    cellule_D = Cells(x, 2).Value 'cellule N°BDC
                    cellule_N = Cells(x, 5).Value 'cellule nom
                    cellule_P = Cells(x, 6).Value 'cellule prénom
                    fic = cellule_N & "_" & cellule_P & "_" & cellule_D & "_BC" 'Nom du nouveau fichier à créer
                    NomDoc = Chemin & fic & ".docm" ' définition du chemin et nom du doc au créer
  
                    '******* choix du fichier àutiliser ******
                    nom = InputBox("Saisie le fichier à utiliser 1 ou 2 : ")
                    If nom = 1 Then nom_doc_vierge = "02-fichier word2" & ".docm"
                    If nom = 2 Then nom_doc_vierge = "02-fichier word - Copie.docm"
    
                    Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\" & nom_doc_vierge)
                    WordDoc.SaveAs NomDoc ' On enregistre le doc word. là le doc est vide
  
                    '************************************
                    ' ***** on renseigne le document Wort à partir du fichier Excel *****
                        'Teste si le signet existe
                         With WordDoc
                            If .Bookmarks.Exists("signature") Then
                                Set signet = .Bookmarks("signature")    ' Signet
                                Set rg = .Bookmarks("signature").Range  ' Range
                                    'supprimer les images si déjà présentes
                                    'dans le signet
                                    With rg
                                        While .InlineShapes.Count > 0
                                              .InlineShapes(1).Delete
                                        Wend
                                        signet.Select
                                        Set Img = signet.Range.InlineShapes.AddPicture(FichierImage, True, False, rg)
                                    End With
                            End If
                    'Si tu veux travailler avec l'image insérée - Dimension, rogner...
                        With Img
                            'Pour définir plusieurs caractéristiques de l'image
                                .PictureFormat.CropRight = 0.6 ' X valeur à définir
                                .PictureFormat.CropTop = 0.6 ' Y valeur à définir
                                .ScaleHeight = 10
                                .ScaleWidth = 10
                                .LockAspectRatio = msoTrue   ' Garde les proportions donc mettre H ou L mais pas les 2
                               '.Height = 35
                                .Width = 120                   ' Là j'ajuste juste en L pas la Hauteur
                        End With
                        .Bookmarks.Add "signat", rg
                    End With
                  
                    '02-*** Pour remplir tous les champs texte BC à partir du doc EXCEL ***
  
                    WordDoc.Bookmarks("Texte5").Range.Text = Cells(x, 5) 'renseigne NOM
                    WordDoc.Bookmarks("Texte6").Range.Text = Cells(x, 6) 'renseigne PRENOM
                    WordDoc.Bookmarks("Texte7").Range.Text = Cells(x, 7) 'renseigne ADRESSE
                    WordDoc.Bookmarks("Texte8").Range.Text = Cells(x, 8) 'renseigne CP
                    WordDoc.Bookmarks("Texte9").Range.Text = Cells(x, 9) 'renseigne VILLE
                    WordDoc.Bookmarks("Texte17").Range.Text = Cells(x, 9) 'renseigne VILLE 1
                    WordDoc.Bookmarks("Texte10").Range.Text = Cells(x, 10) 'renseigne TEL
                    WordDoc.Bookmarks("Texte12").Range.Text = Cells(x, 12) 'renseigne DATE
  
                    Application.ScreenUpdating = True ' on retabli la vue ecran
                  
                    WordDoc.Close True 'on ferme word
                        Set WordDoc = Nothing
                    WordApp.Quit ' on quitte word
                        Set WordApp = Nothing
  
            Case Else
                GoTo suite1
suite1:
            End Select
fin:
    '***** Fin de la boucle de remplissage du doc Word *****
    Next x ' retour pour vérifier s'il y a encore des donnée à traiter
'Beep
    Application.ScreenUpdating = True
    Call import_signature
End Sub