J'aurais le besoin suivant : j'ai des documents avec des extensions "exotiques" répartis dans de nombreux répertoires et je souhaiterais que chacun d'entre eux soit intégré dans un document word (Insertion\objet\créé à partir du fichier\affiché sous forme d’icone) et porterait le nom du fichier.
Exemple : j'ai les fichiers toto.xxxx, titi.yyyy et tutu.zzzz dans le répertoire MACHIN. Une fois que ma macro (qui se trouve dans un document Word et également dans le répertoire MACHIN) aura tourné, je vais trouver dans mon répertoire MACHIN un fichier toto.docx, un fichier titi.docx et un fichier tutu.docx.
Et si j'ouvre toto.docx, dans le document word, j'y trouve toto.xxxx, si j'ouvre titi.docx, dans le document word, j'y trouve titi.yyyy etc....
Je me suis essayé avec le code ci-dessous, mais ce que je cherche c'est que la macro me traite tous les fichiers les uns après les autres dans le répertoire.
Sub Encapsuler()
Dim chemin As String
chemin = ActiveDocument.Path 'la macro est exécutée dans le répertoire où se trouvent les fichiers à traiter
MyName = Dir("*.*")
intPos = InStrRev(MyName, ".") 'objectif retirer l'extension dans le nom plus bas
While MyName <> "" 'boucle pour traiter tous les fichiers contenus dans le répertoire
Documents.Add 'ouverture d'un fichier word
With Selection 'c'est surtout dans les 4 lignes suivantes ou je souhaite que la boucle soit variable au regard de chaque fichier traité et ...ou je coince.
.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _
FileName:=MyName, LinkToFile:=False, DisplayAsIcon:=True, IconFileName:= _
"C:\windows\Installer\{AC76BA86-7AD7-1036-7B44-AC0F074E4100}\PDFFile_8.ico" _
, IconIndex:=0, IconLabel:="Test.pdf"
MyName = Left(MyName, intPos - 1) 'je ne retiens que la partie du nom que je veux accoler à la nouvelle extension
ActiveDocument.SaveAs2 FileName:=chemin & "\" & MyName & ".docx" 'enregistré-sous au format docx dans le répertoire "Chemin"
ActiveDocument.Close 'je referme le document actif une fois celui-ci enregistré
End With
MyName = Dir()
Wend 'je boucle sur le fichier suivant
MsgBox "fin du traitement"