Récupérer la valeur d'un GetOpenFilename pour la réutiliser

Enshuk -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai plusieurs fichiers que j'aimerais concaténer pour les mettre dans un seul fichier.

J'ai écris ce code, ou l'utilisateur peut sélectionner les fichiers qu'ils souhaitent concaténer, mais je bloque sur la dernière partie pour réutiliser la valeur des MsgBox stockés.

Sub CombinerDeuxDocsEnUn()

Dim QuelFichier1
Dim QuelFichier2
  QuelFichier = Application.GetOpenFilename()
    MsgBox QuelFichier
QuelFichier2 = Application.GetOpenFilename()

Dim wrdApp As Object
Dim wrdDoc1 As Object
Dim wrdDoc2 As Object
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc1 = QuelFichier  'Je ne suis pas sûr de la syntaxe pour ces deux lignes
Set wrdDoc2 = QuelFichier2
wrdDoc1.Content.InsertAfter wrdDoc2.Content
wrdDoc1.SaveAs "c:\temp\doc3.doc"
wrdApp.Quit
End Sub




Merci d'avance

Configuration: Windows / Chrome 78.0.3904.97

2 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Il faut ouvrir les documents :
    Option Explicit
    Sub CombinerDeuxDocsEnUn()
    Dim wrdApp As Object
    Dim wrdDoc1 As Object
    Dim wrdDoc2 As Object
    Dim QuelFichier1
    Dim QuelFichier2
      
      QuelFichier1 = Application.GetOpenFilename()
      If QuelFichier1 = False Then Exit Sub
      QuelFichier2 = Application.GetOpenFilename()
      If QuelFichier2 = False Then Exit Sub
      Set wrdApp = CreateObject("Word.Application")
      wrdApp.Visible = True
      Set wrdDoc1 = wrdApp.Documents.Open(QuelFichier1)
      Set wrdDoc2 = wrdApp.Documents.Open(QuelFichier2)
      wrdDoc1.Content.InsertAfter wrdDoc2.Content
      wrdDoc2.Close False
      wrdDoc1.SaveAs "c:\temp\doc3.doc"
      wrdDoc1.Close False
      wrdApp.Quit
    End Sub
    1
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    s'ils sont dans un même répertoire tu peux faire une sélection multiple avec Ctrl+clic et n'appeler qu'une seule fois la boite de dialogue.
    Et tant qu'à faire, utiliser un filtre pour n'afficher que les fichiers intéressants :
        QuelsFichiers = Application.GetOpenFilename(filefilter:=" Fichiers Word,*.doc*", MultiSelect:=True)
        If VarType(QuelsFichiers) <> vbBoolean Then
            For i = 1 To UBound(QuelsFichiers)
                MsgBox QuelsFichiers(i)
            Next i
        End If

    eric

    0