Ouvrire fichier word via information dans celulle

Bonjour a tous ,

(Stagiaire)

Je vous explique mon problème, je m’occupe des agents d’une entreprise sur excel,

J’ai ma base de donnée agent et une macro qui m’envoi sur la feuille « fiche agent » avec toute les info sur celui-ci (nom,prénom,matricule…)

J’ai besoin via une macro inséré a un bouton « fiche médical »

Que la macro avec l’aide du matricule de l’agent situer en B19

M’ouvre dans une fenêtre multi choix les différends document qui se situe dans « C:\Documents and Settings\ Fiches médicales\ qui contienne dans leur nom « le matricule situé en B19 »

Et que j’ai plus qua choisir le document que je veux ouvrir qui sera .doc ou .pdf

Merci d’avance

Bonjour,

Voici un exemple de ce que tu demandes.

Dis moi si cela te suffit (ou non) ?

Damien

Merci tu assure c'est tout a fait sa ,

maintenan jaimerai que le lien "C:\\... soi dans le code et non sur la feuille.

et j'arrive pas a voire le nom de ta macro et la metre dans mon fichier --"

C'est un peu plus compliqué,

Si tu ouvres le fichiers et que tu appuies sur ALT+F11 cela va ouvrir l'editeur VBA.

Dans la partie de gauche tu as le projet avec

Le code associé au feuil1, feuil2 etc.... (onglet)

Le code associé a la FORM (ici le nom de la Form est Recherche

Le code associé au module. (le code ici DOIT être dans un module pour fonctionner je pense)

En résumé :

Le code contenu dans la Feuil1 (pour que la recherche s'effectue et que la Forms Recherche s'ouvre avec la liste peuplé)

Private Sub Recherche_Button_Click()

Dim matricule_recherche As String

Dim objFSO, objDossier, objFichier

matricule_recherche = Range("B19").Value
repertoiresource = Cells(2, 1)

'On va parcourir les fichiers de types DOC et PDF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDossier = objFSO.GetFolder(repertoiresource) 'On ouvre le repertoire source
Recherche.ListBox1.Clear

'Peuple la listeBox
  If (objDossier.Files.Count > 0) Then  'Si il y a des fichiers
     For Each objFichier In objDossier.Files
        If ((InStr(1, objFichier.Name, ".DOC", 1) > 0) Or (InStr(1, objFichier.Name, ".PDF", 1) > 0)) And (InStr(1, objFichier.Name, matricule_recherche, 1) > 0) Then           
Recherche.ListBox1.AddItem objFichier.Name

        End If
     Next
   End If

Recherche.Label1 = "Matricule : " & matricule_recherche
Recherche.Show
End Sub

Le code contenu dans la Form Recherche (pour que quand tu double click cela lance l'ouverture du fichier)

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
fName = repertoiresource & "\" & ListBox1.Value 'Ou le nom du fichier que vous voulez ouvrir
RetVal = ShellExecute(hwnd, "Open", fName, ByVal 0&, 0&, SW_Normal)
End Sub

Le code contenu dans le module (qui contient la déclaration de fonction ShellExecute et aussi la déclaration du répertoire en public.)

Public repertoiresource As String
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOWNORMAL = 1

Donc si tu veux mettre le repertoire en Dur dans le code il faut simplement remplacer la ligne dans le code de la feuil1 :

repertoiresource = Cells(2, 1)

Par

repertoiresource = "C:\Monchemin"   'Attention pas de \ a la fin.

Dis moi si c'est OK pour toi.

Damien

C'est ok pour moi merci beaucoup =D.

Salut,

Peux tu fermer la demande ?

Merci

damien

Rechercher des sujets similaires à "ouvrire fichier word via information celulle"