Bonjour,
Dans une macro excel, j'ouvre un fichier word pour faire une fusion. Après, je dois réaliier une mise en forme pour une chaine de caractères qui se trouve entre deux textes(DebutTableau et FinTableau) et bien sur supprimer ces deux textes.
 
Suite à mes recherches sur internet, voici ce que j'ai fait :
 
 
Ouverture du word et publipostage, il s'agit de la sub publipostage
Sélection du texte et mise en forme , il s'agit de la sub SelectionEntreDeuxTextes. Dans l'exemple ci'dessous, je n'ai aps encore fait la mise en forme. Il s'agit de convertir du texte en tableau, de faire des bordures et de donner la largeur des cellules...
 
Sub Publipostage()
'
'Penser à activer la référence : Microsoft Word 11.0 Object Library
'Pour excel 2003, au niveau du débuggage (code), choisir menu Outils et ensuite Préférences
'Pour excel 2000, revoir le programmation en passant par les objets (late binding)
 
'
 
Dim Wkb As Workbook
Dim Monword As Word.Application
Dim Mondoc As Word.Document
Dim Conn As String
 
    Application.ScreenUpdating = False
    ActiveSheet.Range("A2" ).CurrentRegion.Copy
   
    Set Monword = New Word.Application
    Monword.DisplayAlerts = wdAlertsNone
 
        Set Mondoc = Monword.Documents.Open(Filename:=ThisWorkbook.Path & "\ModeleFiche.doc", ConfirmConversions:=True, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="" )
         
        Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & ThisWorkbook.Path & "\base fiche PE.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet "
     
     Mondoc.MailMerge.OpenDataSource Name:= _
        ThisWorkbook.Path & "\base fiche PE.xls" _
        , ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:=Conn, SQLStatement:="SELECT * FROM `Feuil1$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
   
        With Mondoc.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
 
       
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
     
    Mondoc.ActiveWindow.ActivePane.View.ShowAll = False
    Stop
 
    Monword.Visible = True
    Call SelectionEntreDeuxTextes(Monword)
    Mondoc.Close False
     
    Monword.DisplayAlerts = wdAlertsAll
 
    Set Mondoc = Nothing
    Application.ScreenUpdating = True
End Sub
 
 
Private Sub SelectionEntreDeuxTextes(Monword)
Monword.Selection.HomeKey unit:=wdStory
Monword.ScreenUpdating = False
With Monword.Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .MatchWildcards = True
    .Text = "(\debutTableau*\FinTableau)"
    .Replacement.Text = "\1"
    .Forward = True
    .Execute Replace:=wdReplaceAll
End With
Stop
Monword.ScreenUpdating = True
End Sub
 
 
Mon problème est que la sélection ne se fait pas...Je pense surtout du fait que je ne comprenne pas ".Text = "(\DebutTableau*\FinTableau)""  
 
Pouvez-vous m'aider?
 
Marie