Lien hypertexte - Contrôle d'existance du doc lié par execel
Le
Mclain

Bonjour,
Je suis entrain de faire une base données clients via Excel.
Je stock mes données clients dans un fichier excel et les documents annex=
es dans un autre dossier. Les factures arrivent par mail et sont stockées=
dans un dossier q:fact_clients
Les factures sont archivées au format N°Client_objet.doc
Dans ma base Excel, je fais un lien (par concatenation de la colonne A : N0=
client et de la colonne N "Objet" que je mets en lien hypertexte avec ajout=
du chemin de stockage sur ce dossier q:fact_clientsN°Client_objet.doc.
La question, que je me pose : est-il possible de vérifier que le lien est=
actif ou non, donc de savoir si le document facture est présent, sans av=
oir à cliquer sur ce lien hypertexe qui ne s'ouvrirait pas car le fichier=
facture n'aurait pas été receptionné ?
Et la je bloque !
Je ne sais pas si je suis clairj'espère!
Merci d'avance pour vos conseils et votre aide !
Bon week end.
Mclain
Je suis entrain de faire une base données clients via Excel.
Je stock mes données clients dans un fichier excel et les documents annex=
es dans un autre dossier. Les factures arrivent par mail et sont stockées=
dans un dossier q:fact_clients
Les factures sont archivées au format N°Client_objet.doc
Dans ma base Excel, je fais un lien (par concatenation de la colonne A : N0=
client et de la colonne N "Objet" que je mets en lien hypertexte avec ajout=
du chemin de stockage sur ce dossier q:fact_clientsN°Client_objet.doc.
La question, que je me pose : est-il possible de vérifier que le lien est=
actif ou non, donc de savoir si le document facture est présent, sans av=
oir à cliquer sur ce lien hypertexe qui ne s'ouvrirait pas car le fichier=
facture n'aurait pas été receptionné ?
Et la je bloque !
Je ne sais pas si je suis clairj'espère!
Merci d'avance pour vos conseils et votre aide !
Bon week end.
Mclain
Et bien je vais me débrouiller autrement.
Merci qd même
Mclain
Excel peut-il vérifier que le lien hypertexte dans une cellule est toujou rs bon?
Merci d'avance
Mclain
Faut quand même pas être trop pressé, on est au mois d'août. Est-ce que
tu es familier avec les macros ?
Daniel
Je ne suis pas pressé, j'aurais juste aimé un avis.
Les macros..à peine...j'essaye de me débrouiller en cherchant à droit e et à gauche en essayant d'adapter les macros trouvées.
J'apprends comme ca en fait...
Merci déjà de t'être arrêté sur ma question !
Si tu concatène le chemin et le nom du fichier, tu n'obtiens pas un
lien hypertexte. Est-ce que tu utilises la fonction LIEN.HYPERTTEXTE ou
utilises-tu Insertion, Lien Hypertexte ?
Daniel
Sans utiliser les objets "Hypertexte ou Hyperlink",
Si tu as dans une colonne, la concaténation de 2 colonnes représentant le chemin et le nom du
fichier,
tu peux utiliser cette macro pour ouvrir le fichier s'il existe déjà dans ledit répertoire.
Dans le code module de la feuille où l'action se déroule, tu copies cette procédure :
Dans mon exemple, j'ai supposé que le résultat de la concaténation était dans la colonne A,
à toi d'adapter Range("A:A") par l'adresse où se retrouve les vrais données.
'--------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A:A"))
If Not Rg Is Nothing Then
For Each C In Rg
With C
If .Value <> "" Then
If Dir(C.Value) <> "" Then
ShellExecute 0, "open", C.Value, "", "", 0
End If
End If
End With
Next
End If
End Sub
'--------------------------------------------------------
Et dans le haut d'un module standard, tu dois insérer la déclaration de cette API de Windows :
'---------------------------------------------------------
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
'---------------------------------------------------------
J'utilise la fonction lien.hypertexte...suis à la concaténation de cell ules pour constituer mon lien...
Je vais tester !
Un grand merci à vous DanielCO et MichD !!
Je reviens vous dire très vite !
Merci
lien...
L'utilisation de la fonction "Lien.Hypertexte" crée un lien hypertexte dans la cellule.
Cependant, la formule ne te dit pas si le fichier existe vraiment dans le répertoire et
par conséquent, lorsque tu cliqueras sur le lien, une fenêtre s'ouvrira pour te dire qu'elle
ne trouve pas le fichier...Il me semble que ta question voulait justement éviter l'ouverture
d'une telle fenêtre!
Oui je veux éviter le message d'erreur à la non ouverture du lien hyper texte. Existe-il un possibilité dans ce cas, de colorer en vert la cellul e dont le lien hypertexte est vérifié en étant ok, et en rouge celle dont le lien est vérifié est ko ?
Merci
Essaie la macro suuivante :
Sub Verif()
Dim C As Range, Fich As String
For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
If C.Value <> "" Then
Fich = Dir(C.Value & "" & C.Offset(, 1).Value)
If Fich <> "" Then
C.Offset(, 2).Interior.ColorIndex = 43
Else
C.Offset(, 2).Interior.ColorIndex = 3
End If
End If
Next C
End Sub
Le classeur exempple est là : http://www.cjoint.com/c/EHmh4WFE2lv
Cordialement.
Daniel
Mclain a utilisé son clavier pour écrire :