to be hypertext or not to be?

T

toubib

Guest
Bonjour à tous,

grâce à michel xld j'ai réussi à finaliser mon projet mais une petite chose reste à régler:

grâce au code ci-dessous:
Dim i As Byte
For i = 2 To nba + 1
Sheets(1).Hyperlinks.Add Anchor:=Cells(i, 1), _
Address:='c:\\mon dossier'
Next i

on crée des liens hypertexts vers des fichiers dans un répertoire en fonction de ce qu'il y a d'écrit dans la cellule, cependant, que les fichiers existent ou pas, les liens sont crées.
ma question est donc: est-il possible de ne créer des liens que vers les fichiers qui existent?

merci
 
T

toubib

Guest
y'a un problème, c'est que je ne peux pas préciser le nom du fichier comme tu me le suggères puisque c'est un lien qui est crée automatiquement à partir du contenu de la cellule qui peut donc être différent à chaque fois vu que c'est issu d'un filtre élaboré, de plus, je ne souhaite pas qu'il me dise que cela n'existe pas mais qu'il ne crée pas le lien du tout, c'est plus pratique :)

voila est ce que vous voyez des solutions?
merci :)
 

Creepy

XLDnaute Accro
Bonjour le Forum, Toubib,

1 - Je te donnais un exemple à toi de l'adapter ! Si par exemple le nom de fichier est stocké dans la cellule A2 tu fais :
dir(feuil1.range('A2').value) par exemple

Attention toutefois il faut que dans la cellule ce soit bien un chemin (c:\\toto\\toto.xls) sinon ca ne fonctionne pas.

2 - Tu ne veux rien si le fichier n'existe pas : Bah alors supprime la ligne msgbox. tu laisses juste :

If dir(Chemin+nonmfichier)<>'' then
Ton code de creation de lien
end if

et voila

@+

Creepy
 
T

toubib

Guest
Bonjour le forum, et bonjour à toi au grand creepy :)

merci ca marche impec, dsl j'avais pas saisi sur l'instant la subtilité du chemin+nom de fichier :)

donc du coup si quelqu'un cherche un exemple de ce genre, c'est à dire créer des liens hypertext en fonction du contenu d'une cellule vers un fichier portant le même nom, et éviter de créer les liens vers les fichiers qu'on a pas, ca donne :

Dim i As Byte
'les noms de fichiers doivent etre dans la plage A1:A nb
For i = 2 To nb + 1
If Dir('c:\\mon dossier' & Cells(i, 1) & '.pdf') <> '' Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
Address:='c:\\ mon dossier' & Cells(i, 1) & '.pdf'
End If
Next i

c'est pas long et ca marche du feu de dieu
bonne journée à tous et encore merci creepy!!!!!!!!! :)
 

Statistiques des forums

Discussions
312 234
Messages
2 086 470
Membres
103 226
dernier inscrit
smail12