Problème de localisation pour coller un élément dans Word

Bonjour à tous,

Je souhaite, depuis VBA sur Excel coller un "tableau" dans dans Word.

Dans le fichier suivant :

1/ localisation dans excel des éléments à copier,

2/ copie les éléments à copier,

3/ demande de choix du fichier Word

4/ recherche du terme (avec le style "Titre table")

5/ si le terme est présent, coller le contenu du presse-papier. Et c'est là que le problème arrive : ça le colle à la première ligne.... Et non pas à l'endroit du terme rechercher (ça devrait le coller au moment du "ICI_Test_IDU_Labels" en bleu (le seul qui a le style "Titre table")

Savez-vous pourquoi et si oui, comme régler ce problème ?

6ici.docx (17.97 Ko)
10test-idu.xlsm (41.74 Ko)

Merci,

Sébastien

Bonjour,

Il serait plus simple d'utiliser des signets. Il est préférable de mettre votre code dans un module standard plutôt que dans un module d'onglet.

Nb : Les signets n'acceptent pas le caractère - (touche 6).

Sub CopierVersWord()

    Dim LastRow As Long, LastCol As Long, I As Long
    Dim Rng As Range
    Dim SearchTerm As String, FichierNom As String
    Dim SelectedFile As Variant
    Dim Ws As Worksheet

    Dim WordApp As Word.Application  'Object
    Dim WordDoc As Word.Document 'Object

    Set Ws = Sheets("Labels")
    With Ws
         LastRow = .Cells(Ws.Rows.Count, "A").End(xlUp).Row
         LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
         Set Rng = .Range("A2", .Cells(LastRow, LastCol))
    End With

    ' Supprimer les 5 derniers caractères
    FichierNom = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
    ' Créer le terme "zone à copier" composé de "CI" + "_" + nom du fichier + "_" + nom de l'onglet
    SearchTerm = "ICI_" & FichierNom & "_" & Ws.Name   ' Attention, pas de caractère - dans le nom des signets.

    ' Demander à l'utilisateur de sélectionner un fichier Word (*.docx)
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Sélectionnez un fichier Word (*.docx)"
        .Filters.Clear
        .Filters.Add "Fichiers Word", "*.docx"
        If .Show = -1 Then
            SelectedFile = .SelectedItems(1)
        Else
            GoTo Fin
        End If
    End With

    ' Créer une instance de l'application Word
    Set WordApp = CreateObject("Word.Application")
    With WordApp
         .Visible = True
         Set WordDoc = .Documents.Open(SelectedFile) ' Ouvrir le document Word sélectionné
    End With

    With WordDoc
         If .Bookmarks.Exists(SearchTerm) = True Then
            .Bookmarks(SearchTerm).Range.Select
            With WordApp.Selection
                 .EndKey unit:=5, Extend:=0
                 .MoveDown unit:=5, Count:=2, Extend:=1
                 Rng.Copy
                 .Paste
            End With
        Else
           Msgbox "Le terme " & SearchTerm & " n'a pas été trouvé dans le document " & SelectedFile & ".", vbExclamation
        End If
    End With

   ' Fermer le document Word (vous pouvez également enregistrer si nécessaire)
  '  WordDoc.Close savechanges:=True
  '  WordApp.Quit

    GoTo Fin

Fin:

    Set Ws = Nothing
    Set WordDoc = Nothing: Set WordApp = Nothing

End Sub
12ici.zip (48.82 Ko)

Salut Eric,

Je te remercie pour la réponse. Je vois cette histoire de signet et reviens vers toi.

Merci encore,

Seb78

C'est exactement ce qu'il me fallait !

Je n'ai vraiment pas pensé à me servir des signets...

Merci beaucoup,

Sébastien

Rechercher des sujets similaires à "probleme localisation coller element word"