Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2011, 14h40   #1
Nouveau Membre du Club
 
Homme Thomas Sabourin
Ingénieur qualité méthodes
Inscription : mars 2008
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Thomas Sabourin
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2008
Messages : 48
Points : 32
Points : 32
Par défaut Pièce jointe dans Base de données

Bonjour à tous,

J'ai créé dans mon entreprise une base de données réclamations clients sur Excel, qui doit nous permettre de répertorier l'ensemble des réclamations.

J'aimerais que cette base contienne également, le cas écheant, le fichier source de la réclamation (ex : Lettre du client numérisée; mail du client numérisé...). Pour faciliter la vie aux utilisateurs, j'aimerais qu'il puissent rattacher ce fichier (pdf ou autre) en cliquant simplement sur la case de la ligne correspondant à la réclamation que l'utilisateur serait en train d'enregistrer dans la base.

Autrement dit, je voudrais une colonne dédiée aux pièces jointes pour chaque réclamation (ligne) ayant un fichier source (ex : Lettre du client numérisée; mail du client numérisé... en format pdf ou autre), qui permettrait de télécharger le fichier source issu d'un répertoire quelconque vers la base Excel, par un simple clique sur la cellule correspondante.

Je ne sais pas si je me suis bien fait comprendre, et je ne sais pas si cela est faisable facilement ou si cela nécessite du VBA.

Merci d'avance.
Thomas S est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 01h50   #2
Membre régulier
 
Avatar de doncamelo
 
Chargé d'études
Inscription : décembre 2007
Messages : 98
Détails du profil
Informations personnelles :
Localisation : Haïti

Informations professionnelles :
Activité : Chargé d'études
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2007
Messages : 98
Points : 99
Points : 99
Bonjour Thomas S,

Voici une première idée pour t'aider.

Dans un premier temps, on va créer dans un module, une fonction permettant de sélectionner le chemin complet du fichier :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function Func_SelectionFichier()
 
'Selectionnez la référence " Microsoft Office x.y Object Library
'(où x.y est le numéro de votre version d'Access,
'par exemple 11.0 pour office 2003 ou 12.0 pour office 2007 etc...)
 
 
  Dim fd As Office.FileDialog
 
  ' Créer un objet FileDialog
  Set fd = Application.FileDialog(msoFileDialogOpen)
 
  ' Titre de la boîte de dialogue
  fd.Title = "Sélectionnez Le fichier du client..."
 
  ' Ne pas autoriser la sélection multiple
  ' (donc 1 seul fichier est sélectionnable à la fois)
  fd.AllowMultiSelect = False
 
  ' Afficher la boîte de dialogue
  If fd.Show() Then
    Func_SelectionFichier = fd.SelectedItems(1)
  End If
  Set fd = Nothing
 
 
End Function
En supposant que ta liste de clients se trouve dans l'onglet "Base Clients" avec :

colonne A = "Nom du client"
Colonne B = "Prenom du client"
Colonne C = "Le chemin du fichier"

On va associer à l'évènement
Code :
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
de cet onglet le code ci-dessous:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
    Dim DerniereLigne As Integer
    DerniereLigne = Range("A1").End(xlDown).Row
    Dim LeChemin As Variant
'If Not Intersect(Target, Range("C7:C14")) Is Nothing Then
    If Not Intersect(Target, Range(Cells(2, 2), Cells(DerniereLigne, 2))) Is Nothing Then
        Cancel = True
 
        LeChemin = Func_SelectionFichier
 
        If LeChemin = "" Or IsNull(LeChemin) Then
            Exit Sub
        Else
            Cells(Target.Row, 3) = LeChemin
 
        End If
 
'Ajoute un lien hypertexte vers le fichier
        ActiveSheet.Hyperlinks.Add Cells(Target.Row, 3), Cells(Target.Row, 3).Value
 
    End If
 
End Sub
Donc sur double click sur le prenom, tu pourras choisir le chemin complet du fichier du client, et ensuite visualiser ce fichier grace au lien hypertexte.

Il te faudra adapter ce code à tes colonnes.
En espérant que cela puisse t'aider et en attendant mieux.
Exemple en pièce jointe

Doncamelo
Fichiers attachés
Type de fichier : rar Documents clients.rar (40,8 Ko, 17 affichages)
doncamelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 10h38   #3
Nouveau Membre du Club
 
Homme Thomas Sabourin
Ingénieur qualité méthodes
Inscription : mars 2008
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Thomas Sabourin
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2008
Messages : 48
Points : 32
Points : 32
Bonjour doncamelo,

J'ai essayé ton code, et en effet, ca marche. Merci, ca pourra m'être utile.

Entre temps, de mon côté, j'ai aussi opté pour un lien hypertexte. Dans la colonne S, J'utilise la fonction CONCATENER pour localiser le fichier :
=CONCATENER("chemin pour acccéder au dossier";"\";$R5)
A noter que dans mon cas, le chemin pour accéder au dossier est toujours le même. L'utilisateur n'a donc qu'à mettre le nom de son fichier avec son extension dans la colonne R.

Dans la colonne T, la fonction LIEN_HYPERTEXTE transforme S5 en lien :
=LIEN_HYPERTEXTE($S5;"&")
A noter que & correspond à un livre ouvert en police Wingdings. J'ai fait cela pour que ça soit visuellement plus sympa.

Une fois le nom du fichier collé avec son extension dans la colonne R, l'utilisateur n'a donc plus qu'à cliquer sur le livre ouvert dans la colonne T pour ouvrir son fichier.


Le problème du lien, est que dès que l'on change le fichier de place, ou que le chemin d'accès est modifié, plus rien ne marche. Mais ça devrait faire l'affaire pour l'instant. Je laisse la discussion ouverte un moment au cas où quelqu'un aurait une autre idée.

Encore merce doncamelo.
Thomas S est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h40.


 
 
 
 
Partenaires

Hébergement Web