Lien hypertexte - Contrôle d'existance du doc lié par execel
48 réponses
Mclain
Bonjour,
Je suis entrain de faire une base donn=E9es clients via Excel.
Je stock mes donn=E9es clients dans un fichier excel et les documents annex=
es dans un autre dossier. Les factures arrivent par mail et sont stock=E9es=
dans un dossier q:\fact_clients\
Les factures sont archiv=E9es au format N=B0Client_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_clients\N=B0Client_objet.doc.
La question, que je me pose : est-il possible de v=E9rifier que le lien est=
actif ou non, donc de savoir si le document facture est pr=E9sent, sans av=
oir =E0 cliquer sur ce lien hypertexe qui ne s'ouvrirait pas car le fichier=
facture n'aurait pas =E9t=E9 receptionn=E9 ?
Et la je bloque !
Je ne sais pas si je suis clair...j'esp=E8re!
Merci d'avance pour vos conseils et votre aide !
Bonsoir, 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
Ma question est en fait : Excel peut-il vérifier que le lien hypertexte dans une cellule est toujours bon?
Merci d'avance
Mclain
Mclain
Bonsoir DanielCo,
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 !
Bonsoir DanielCo,
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 !
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 !
DanielCo
Bonjour, 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
Bonsoir DanielCo,
Je ne suis pas pressé, j'aurais juste aimé un avis. Les macros..à peine...j'essaye de me débrouiller en cherchant à droite 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 !
Bonjour,
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
Bonsoir DanielCo,
Je ne suis pas pressé, j'aurais juste aimé un avis.
Les macros..à peine...j'essaye de me débrouiller en cherchant à droite 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 !
Bonjour, 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
Bonsoir DanielCo,
Je ne suis pas pressé, j'aurais juste aimé un avis. Les macros..à peine...j'essaye de me débrouiller en cherchant à droite 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 !
MichD
Bonjour,
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 '---------------------------------------------------------
Bonjour,
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
'---------------------------------------------------------
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 '---------------------------------------------------------
Mclain
Bonsoir, 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
Bonsoir,
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 !
Bonsoir, 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
MichD
| J'utilise la fonction lien.hypertexte...suis à la concaténation de cellules pour constituer mon 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!
| J'utilise la fonction lien.hypertexte...suis à la concaténation de cellules pour constituer mon
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!
| J'utilise la fonction lien.hypertexte...suis à la concaténation de cellules pour constituer mon 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!
Mclain
Bonjour,
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
Bonjour,
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 ?
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
DanielCo
Bonjour,
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 :
Bonjour,
Oui je veux éviter le message d'erreur à la non ouverture du lien hypertexte. Existe-il un possibilité dans ce cas, de colorer en vert la cellule dont le lien hypertexte est vérifié en étant ok, et en rouge celle dont le lien est vérifié est ko ?
Merci
Bonjour,
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 :
Bonjour,
Oui je veux éviter le message d'erreur à la non ouverture du lien hypertexte.
Existe-il un possibilité dans ce cas, de colorer en vert la cellule dont le
lien hypertexte est vérifié en étant ok, et en rouge celle dont le lien est
vérifié est ko ?
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 :
Bonjour,
Oui je veux éviter le message d'erreur à la non ouverture du lien hypertexte. Existe-il un possibilité dans ce cas, de colorer en vert la cellule dont le lien hypertexte est vérifié en étant ok, et en rouge celle dont le lien est vérifié est ko ?