Ouvrir un fichier selon le choix de l'utilisateur

Bonjour,

A tous,

J'ai des documents words dans un meme repertoire. Et je voudrais faire un programme vba qui demande l'utilisateur d'entrer le nom du document word pour l'ouvrir.

J'ai pensé un truc de ce genre mais ça marche pas du tout.

Sub Export_word()

Dim WordApp As Word.Application, WordDoc As Word.Document,

Dim Trouve As Range

On Error Resume Next

'Do

'MotRecherche = InputBox("Saisir le nom de la fiche Test", "FONCTIONS")

Set AppWord = CreateObject("Word.Application")

With AppWord

.Visible = True

Set WordDoc = .Documents.Open("E:/MacroV3.2/")

With WordDoc

Do

MotRecherche = InputBox("Saisir le nom de la fiche Test", "FONCTIONS")

'Recherche du document

Set Trouve = Dir.Find(what:=MotRecherche, LookAt:=xlWhole)

If Not Trouve Is Nothing Then

'Ouvre le fichier

Set WordDoc = .Documents.Open("E:/MacroV3.2/Trouve")

Else

MsgBox ("Une fonction existante est requise!")

End If

Loop Until Not IsNumeric(MotRecherche)

End With

End With

End Sub

N'hésitez pas à partager vos idées. Merci par avance

Salut Eabra,

Sub OpenFile()
Dim Path As String, NameFile As String, Group As String
Set wordapp = CreateObject("word.Application")
Path = "P:\PERSONNEL\"
NameFile = "monfichierword.doc"
Group = Path & NameFile
wordapp.Visible = True
wordapp.Documents.Open "" & Group & ""
End Sub

Restant à dispo si tu a des questions

Merci Juice,

Ca marche sauf que je veux pas ecrire le nom du fichier dans le code.

Je veux utiliser un InputBox pour saisir le nom du fichier à ouvrir.

Je sais pas comment faire.

Bonjour tout le monde,

Je reprend le code de Juice,

NameFile = InputBox("Entrez le nom du fichier (avec l'extension) : ")

Cela peut être ?

Merci Mus54,

J'avais pensé utilize une variable intermediaire .

Mais avec ce bout de code ca marche :

NameFile = InputBox("Entrez le nom du fichier (avec l'extension) : ")

Mais est-ce possible de ne pas renseigner l'extention. Enfin pour optimizer le code

Merci à tous les deux

Re eabra,

Oui il est tout à fait possible.

NameFile = InputBox("Entrez le nom du fichier :  ") &  ".doc"

Bonjour tout le monde ,

En partant du code de Juice .....

Sub OpenFile()

Dim Path As String, NameFile As String, Group As String
Dim mondoc As String

mondoc = InputBox("Saisir le nom de la fiche Test", "FONCTIONS")

Set wordapp = CreateObject("word.Application")
Path = "C:\Users\maison\Documents\"                   ' à adapter
NameFile = mondoc & ".docx"                           ' extension à adapter
Group = Path & NameFile
wordapp.Visible = True
wordapp.Documents.Open "" & Group & ""

End Sub

Cordialement,

Je vais vous embetter avec un autre probleme.

Mon classeur a deux feuilles, Feuilles 1 et 2.

Suivant le nom que du document que l'utilisateur va entrer, je dois aller soit sur la feuille 1 ou 2 copier les données et les coller dans le document word ouvert en question.

N'ayant pas l'ame d'un programmeur, je galère à avoir une idée. Je pense utilizer un case mais je sais pas trop comment l'élaborer.

Si par hazard vous auriez un code que je pourrais adapter.

Merci par avance,

Cordialement,

Salut tout le monde !

On reprend mon code qui a été très gentillement amélioré par Xorsankukai (Aligatô gozaimasuuu <3) et on rajoute les deux lignes ci-dessous :

Sub OpenFile()

Dim Path As String, NameFile As String, Group As String
Dim mondoc As String

mondoc = InputBox("Saisir le nom de la fiche Test", "FONCTIONS")

Set WordApp = CreateObject("word.Application")
Path = "P:\PERSONNEL\Excel\"                          ' à adapter
NameFile = mondoc & ".docx"                           ' extension à adapter
Group = Path & NameFile
WordApp.Visible = True
WordApp.Documents.Open "" & Group & ""

Sheets(1).Range("A1:B10").Copy                        ' ou sheets(2) si tu veux
WordApp.Selection.PasteAndFormat (wdFormatOriginalFormatting)

Cela fera un copier coller de ta plage A1:B10 de ta feuille 1 sur ton Word ouvert !

Pour faire des sauts de lignes tu peux utiliser :

WordApp.Selection.TypeParagraph

Enfin, petite astuce :

Utilise l'enregistreur de macro sur Word pour ensuite passer sur Excel.

Tu a juste à rajouter WordApp devant les lignes :3

Restant à dispo ;D

Merci juice,

Ouais le code : Sheets(1).Range("A1:B10").Copy ' ou sheets(2) si tu veux

WordApp.Selection.PasteAndFormat (wdFormatOriginalFormatting)

je l'ai bien compris mais ce que je veux faire c'est à partir du programme en fonction du document ouvert (par exemple fiche1.docx) partir à la feuille 1 de mon classeur excel.

J'ai pensé utilser une variable choix si document fiche1.docx un est ouvert je met choix=1 sinon, fiche2.docx, choix=2.

Apres je fait un case choix en renseignant les instructions.

Sauf que je sais pas si c'est possible ou faisable

Eabra,

Pour choisir ta feuille tu peux utiliser un UserForm pour que l'utilisateur de ta procédure indique manuellement les informations

D'accord juice,

Première fois que j'entends UserForm mais je vais regarder.

Merci,

Eh bien je te laisse découvrir ce qu'est un UserForm et si tu a besoin d'un coup de main sur cet outil tu reviens vers moi ^^

Eh juice, c'est excitement ce que je voulais faire. ^^

C'est vraiment pratique ce UserForm.

Merci encore une fois

Rechercher des sujets similaires à "ouvrir fichier choix utilisateur"