XL 2010 Formule SI, LIEN_HYPERTEXTE, procédure externe fonctionnement bizarre

Guy_M

XLDnaute Occasionnel
Bonjour,

Dans une formule de ce type, le lien hypertexte fonctionne
=SI(ConditionCandidature; LIEN_HYPERTEXTE(DossierCandidatures&IdCandidat;"Répertoire candidature");"Pas de dossier de candidature.")

alors que dans cette formule, le lien hypertexte ne fonctionne pas
=SI(ConditionCandidature;SI(Personal.xlsb!DossierExiste(DossierCandidatures&IdCandidat);LIEN_HYPERTEXTE(DossierCandidatures&IdCandidat;DossierCandidatures&IdCandidat);"Doit être créé");"Non concerné")

ConditionCandidature, DossierCandidatures et IdCandidat sont des cellules nommées.

Quelqu'un aurait-il une explication ? Aurais-je raté quelque chose ?

Par avance, je vous remercie de vos réponses.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

=>Guy_M
Je dirais au débotté, à brûle-pourpoint: râté l'occasion de joindre un fichier exemple
(pour nous faciliter la tâche et pouvoir tester in situ)
:rolleyes:

(Depuis 13 ans que tu es inscrit sur le forum, tu as du la lire maintes et maintes fois cette supplique du fichier joint, non ? ;))
 

Guy_M

XLDnaute Occasionnel
Bonjour le fil,

=>Guy_M
Je dirais au débotté, à brûle-pourpoint: râté l'occasion de joindre un fichier exemple
(pour nous faciliter la tâche et pouvoir tester in situ)
:rolleyes:

(Depuis 13 ans que tu es inscrit sur le forum, tu as du la lire maintes et maintes fois cette supplique du fichier joint, non ? ;))
Évidemment, il n'est pas possible de fournir le fichier confidentiel.

J'ai donc essayé de construire un fichier exemple avec :
=SI(VRAI; LIEN_HYPERTEXTE("C:";"Répertoire candidature");"Pas de dossier de candidature.")
et
=SI(VRAI;SI(Personal.xlsb!DossierExiste("C:");LIEN_HYPERTEXTE("C:";"C:");"Doit être créé");"Non concerné")

Ça marche. Je dois trouver une autre méthode pour reproduire l'erreur.
 

Guy_M

XLDnaute Occasionnel
joindre un fichier exemple

Ci joint le fichier exemple et la fonction à insérer dans votre Personal.xlsb
VB:
Public Function DossierExiste(MonDossier As String)
   DossierExiste = Len(Dir(MonDossier, vbDirectory)) > 0
End Function

L'utilisation de la fonction personnalisée externe empêche le lien hypertexte de fonctionner.
 

Pièces jointes

  • Test Formule FonctionPerso et LienHypertexte.xlsx
    10.7 KB · Affichages: 14

Staple1600

XLDnaute Barbatruc
Bonjour

Évidemment, il n'est pas possible de fournir le fichier confidentiel.
Evidemment tout XLDdien qui a un peu de bouteille sait (car il a lu la charte du forum) qu'on ne joint jamais le fichier original! :rolleyes:
Le même XLDien saura qu'on créé un fichier Excel exemple dont la seule vocation est d'illustrer la problématique rencontrée.

Maintenant j'ai une question:
Quel est le contexte? et quel est le but de la manoeuvre?
 

job75

XLDnaute Barbatruc
Bonsoir Guy_M, JM,

Téléchargez le fichier et les dossiers zippés joints dans le même répertoire (le bureau).

La macro pour créer les liens hypertextes vers les dossiers :
VB:
Sub Creer_Liens()
With Feuil1
    .Range("A2:A" & .Rows.Count).Clear 'RAZ
    .Hyperlinks.Add [A3], ThisWorkbook.Path & "\Dossier1"
    .Hyperlinks.Add [A5], ThisWorkbook.Path & "\Dossier2"
    .Hyperlinks.Add [A7], ThisWorkbook.Path & "\Dossier3"
    .Columns(1).AutoFit
End With
End Sub
Les liens sont testés à chaque ouverture du fichier :
VB:
Private Sub Workbook_Open()
Dim h As Hyperlink, x$
With Feuil1 'CodeName
    For Each h In .Hyperlinks
        x = h.Address
        If Not x Like "?:\*" Then x = Me.Path & "\" & x 'chemin complet
        h.Parent = "Ce dossier " & IIf(Len(Dir(x, vbDirectory)), "existe : ", "n'existe pas : ") & x
    Next
    .Columns(1).AutoFit
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
A+
 

Pièces jointes

  • Liens(1).zip
    29.9 KB · Affichages: 4

Guy_M

XLDnaute Occasionnel
Je devais mettre des liens hypertextes dans les cellules, bien évidemment ceux-ci seraient valides dès leur création.
Au début j'avais commencé avec =SI(ConditionCandidature; LIEN_HYPERTEXTE(DossierCandidatures&IdCandidat;"Répertoire de candidature");"Pas de dossier de candidature.") mais au bout d'un moment, ça m'a énervé de cliquer de temps en temps sur un lien qui me balançait une erreur parce que je n'avait pas encore exécuté la commande de création du dossier (au téléchargement des fichiers que contient le dossier, écrit en R).

Donc je me suis rabattu sur l'aide mémoire "Dossier créé"/"Doit être créé". Et là, le lien hypertexte s'affiche mais ne marche pas, j'ai remplacé "Dossier crée" par le chemin pour contrôler sa valeur (où est l'erreur ?). J'ai essayé de rester KISS.
 
Dernière édition:

Guy_M

XLDnaute Occasionnel
Merci beaucoup pour cette proposition, mais ceci n'explique pas pourquoi l'appel à "Personal.xlsb!DossierExiste" rend le lien hypertexte inopérant.

De plus j'essaye autant que possible de ne pas mettre de macro dans mes tableurs car ensuite il est difficile de les envoyer par mail (les classeurs avec macro sont interdits par la messagerie de mon boulot).
 
Dernière édition:

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet