Insertion lien hypertexte "Spéciale"

Bonjour à tous,

Je vous sollicite de nouveau pour mes liens hypertexte qui se créent en automatique sur ma base sur le principe suivant :

A partir d'un code par 80022809B je vais d'un un répertoire vérifier que le fichier existe avec le code suivant (Merci le forum)

Option Explicit

Public Function Fichier_Existe(Path As String) As Boolean

If dir(Path) = "" Then

Fichier_Existe = False

Else

Fichier_Existe = True

End If

End Function

Existe = Fichier_Existe(dirClichés & MonFichier & ".pdf")

Ensuite j'effectue If ... Not... Then... Else et aprés Else

J'ai le code suivant (En C37 est entrée la valeur 80022809B)

Range("C37").FormulaR1C1 = "=if(R[-21]C="""","""",hyperlink(""c:\Documents and settings\..........\plans\clichés\""&R[-21]C&"".pdf"",""Plan ""&R[-21]C))"

Tout ce code fonctionne à merveille et en partie grâce à votre aide. Cependant, la vraie valeur du format PDF est 80022809B Suivie d'une date de validation ce qui donne 80022809B 050908 (pour le 05 septembre 2008) et cette date est bien entendur variable.

Je souhaiterais donc dire à mon code de vérfier si le fichier 80022809B*.PDF (de sorte à ignorer la date ) existe alors j'insère le lien de ce fichier si ce dernier n'existe pas je passe à la suite du code.

Merci de votre aide

Salut le forum

A l'aveuglette

  • Existe = Fichier_Existe(dirClichés & MonFichier & "*.pdf")

Mytå

Bonjour Myta et le forum,

Hélas non, l'insertion de * ne fonctionne pas, j'avais déjà tenté le coup.

Le lien se réalise bien mais dés que je clique dessus le fichier est non spécifié.

Je continue à tester différentes positions du * mais sans succés.

Merci

bonjour marky; Mytå

Chez moi ta fonction est Ok même si je n'aime pas utiliser des mots clefs comme variables : Path

vérifie ton chemin mais peut être un \ manquant.

Existe = Fichier_Existe(dirClichés & "\" & MonFichier & ".pdf") 

pour vérifier le chemin, tu mets un stop en cliquant dans la marge à gauche de la ligne, ensuite ça s'arrête et tu fais debugage.

en passant avec la souris sur tes variables, tu as la valeur qui apparaît

ou encore dans ta fonction tu mets un Msgbox Path au tout début

Merci Wilfried,

Le code fonctionne trés bien pas de souci là dessus mais je vais expliquer de nouveau car je constate que ma question était mal posée.

En D7 j'ai la valeur 800220809B qui est un code produit fini.

A ce produit fini correspond un fichier PDF qui est une validation et qui est entrée sous la forme Code Produit Fini + Date de validation ce qui donne le fichier 800220809B(espace) 050609.PDF

Donc ma fonction Existe va bien dans le bon répertoire tester si le fichier 800220809B existe mais comme ce dernier comporte également une date derrière elle ne le trouve pas.

C'est pour ça que je souhaite lui dire est ce que le fichier 800220809B*.PDF existe, si oui merci de créer le lien hypertexte si non on passe à la suite.

J'ai bien tenté de convaincre les services de ma boite de supprimer cette date et de l'incorporer dans le PDF lui même mais sans succés.

Je peux aussi tous les renommer mais il y a 3500 codes produits finis donc faire une double copie est incensée et va prendre de la place inutilement.

Merci de votre aide,

Je désespère de trouver une solution, j'ai tout essayé ou presque en plaçant le * à différentes places avec des espaces pour simuler les 6 chiffres de la date, avec des & partout et que dalle, rien n'y fait.

Il faudrait que j'arrive à récupérer le vrai nom de fichier et que je le mette dans une variable mais je n'y arrive pas.

Si vous avez une idée

Re le forum

Donne nous donc le code complet de ta macro

Mytå

Bonjour Myta et le forum,

Voici le code

En range ("D7") se trouve ma valeur de code 8080922B

Dans dirClichés se trouve mon fichier 8080922B 050508.pdf

Si ce dernier n'existe pas je mets dans la case M44 "Pas de plan"

Si ce dernier existe et que dans Range("D7") (codé ici en R[-37]C[-9]&) il y a bien une valeur (je sais je l'ai déjà testé auparavant mais je n'arrive pas à entrer le code pour créer le lien hypertexte sans cette condition) alors j'insère le lien hypertexte vers ce satané fichier 8080922B*.pdf car la date peut être différente 365 fois ou 366 fois pour les années bisextiles.

En résumé si le fichier existe alors il faudrait qu'en M44 le lien hypertexte se fasse sans la condition IF donc il n'y aura pas cette partie "=if(R[-37]C[-9]="""","""",.

Dans le même style j'attribue le nom de mon lien avec la même formule alors que sa valeur est dans la variable MonFichier mais je n'y arrive pas non plus.

Ca devrait donner quelque chose du style :

Range("M44").FormulaR1C1 = HYPERLINK(""c:\Documents and settings\.....\mes documents\.......\base de données\Plans\Clichés\""&Monfichier&""*.pdf"",""Cliché ""&Monfichier))"

Merci de votre aide.

Option Explicit

Public Function Fichier_Existe(Path As String) As Boolean

If dir(Path) = "" Then

Fichier_Existe = False

Else

Fichier_Existe = True

End If

End Function

PartieImpression:

dirClichés = "C:\Documents and Settings\....\Mes documents\..........\Base de données\Plans\Clichés\"

If Range("D7").Value = Empty Then GoTo PartieCondInt Else MonFichier = Range("D7").Value

Existe = Fichier_Existe(dirClichés & MonFichier & ".pdf")

If Not Existe Then

Range("M44").Select

Selection.Font.Italic = True

Selection.Font.ColorIndex = 16

Selection.Font.Underline = xlUnderlineStyleNone

Range("M44").Value = "Pas de plan"

Else

Range("M44").Select

Selection.Font.Italic = False

Selection.Font.ColorIndex = 11

Selection.Font.Underline = xlUnderlineStyleSingle

Range("M44").FormulaR1C1 = "=if(R[-37]C[-9]="""","""",HYPERLINK(""c:\Documents and settings\.....\mes documents\.......\base de données\Plans\Clichés\""&R[-37]C[-9]&"".pdf"",""Cliché ""&R[-37]C[-9]))"

End If

En résumé si le fichier existe alors il faudrait qu'en M44 le lien hypertexte se fasse sans la condition IF donc il n'y aura pas cette partie "=if(R[-37]C[-9]="""","""",.

Dans le même style j'attribue le nom de mon lien avec la même formule alors que sa valeur est dans la variable MonFichier mais je n'y arrive pas non plus.

Ca devrait donner quelque chose du style :

Range("M44").FormulaR1C1 = HYPERLINK(""c:\Documents and settings\.....\mes documents\.......\base de données\Plans\Clichés\""&Monfichier&""*.pdf"",""Cliché ""&Monfichier))"

J'ai tenté ceci mais message d'erreur "Erreur d'exécution '13' Incompatibilité de type"

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=dirBlister \ MonFichier & ".pdf", TextToDisplay:=MonFichier

Il faut lire dirClichés et non dirBlister mais c'est juste un chemin d'accés.

2pec-2017.xlsx (244.36 Ko)

J'ai tenté ceci mais message d'erreur "Erreur d'exécution '13' Incompatibilité de type"

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=dirBlister \ MonFichier & ".pdf", TextToDisplay:=MonFichier

Je viens de trouver, je suis une banane .

Voici la solution : ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=(dirClichés & MonFichier & ".pdf"), TextToDisplay:=MonFichier

Première erreur dans mon dirclichés était déjà intégré le \ donc pas possible et deuxième erreur j'avais un message pb fin d'instruction donc j'ai mis les parenthèses.

J'ai essayé de glisser un petit * dans le code mais même pb, toujours pas d'insertion de mon fichier complet avec la date....

Rechercher des sujets similaires à "insertion lien hypertexte speciale"