Problème pour créer un lien hypertexte automatique
Bonjour à tous,
Voilà maintenant plusieurs jours que je cherche et que je ne trouve malheureusement pas de réponse.
Je souhaiterai créer un lien hypertexte automatique en fonction de ce qui est rempli dans la cellule et que la macro ou formule aille chercher de façon automatique la valeur de la cellule dans un dossier qui ne bougera pas.
Auriez vous une solution?
J'essayerais de mettre une copie du fichier de base demain si vous le voulez
Merci d'avance pour votre aide
Florian
Bonsoir,
Ça manque un peu de précisions...
Mais sinon cela ne présente pas de difficulté, tu réunis les éléments nécessaires et tu suis la syntaxe !
(feuille).Hyperlinks.Add Celluled'accueildulien(objet Range), AdresseLien(ce sera l'adresse du fichier, String), [sous-adresse, éventuellement emplacement dans le fichier ], [InfoBulle à afficher, éventuellement], [Texte affiché dans la cellule]
A priori les 2 premiers arguments sont nécessaires, éventuellement le 3e selon le cas. Les autres peuvent être ignorés... (si du texte est déjà dans la cellule, il y reste).
Cordialement.
Bonjour,
Je dois rentrer la formule en Private Sub? Comment dois je la rentrer sinon?
Merci beaucoup de votre aide
Voici l'exemple du fichier que j'utilise.
Je voudrais que dans la cellule G32 ainsi que les suivantes ce créent le lien hypertexte de façon automatique
Le fichier PDF que je veux liée n'a pas le même nom exactement mais les derniers caractère de la cellule sont les premiers caractères du fichier PDF. Je ne sais pas si je suis très clair...
Merci encore de votre aide
Bonjour,
Un peu de clarté dans les définitions
Une formule est une expression précédée d'un signe = dans une feuille de calcul Excel.
Pour l'opération qu'on veut réaliser il s'agit de bâtir une procédure qui la réalisera, soit qui contiendra du code dont l'exécution fera ce que l'on souhaite.
S'agissant d'une action à réaliser, sans résultat à renvoyer, il s'agit naturellement d'une procédure Sub., ,,
L'emplacement de cette procédure dépend de la façon dont on veut qu'elle soit lancée :
- si elle est lancée à la demande (par bouton par exemple, ou manuellement), il conviendra de la doter d'un nom et la placer dans un module Standard [ Sub NomProc() ]
- si elle doit être lancée en réponse à un évènement, elle devra être placée dans le module de la feuille concernée (ou dans le module classeur, si on réagir à l'évènement sur plusieurs feuilles).
Dans ce dernier cas, il convient de choisir l'évènement qui sera utilisé comme déclencheur. Si par exemple, on veut que la procédure s'exécute à suite de la saisie dans une cellule, on retiendra l'évènement Change, qui se déclenchera lors d'une modification dans une quelconque cellule de la feuille, à la validation du nouveau contenu.
Pour une procédure évènementielle, on évite d'écrire soi-même la déclaration de procédure.
Dans le module, dans la liste déroulante de gauche, on clique sur Worksheet, ce qui va inscrire la procédure d'évènement par défaut de l'objet Worksheet :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Suble cuseur se positionnant sur la ligne entre Sub et End Sub...
Il ne s'agit pas de l'évènement recherché, aussi sans déplacer le curseur on déroule la liste de droite, on cherche l'évènement voulu : Change, et on clique. Nouvelle inscription :
Private Sub Worksheet_Change(ByVal Target As Range)
End SubOn peut effacer l'inscription précédente dont on ne se servira pas.
La procédure est déclarée privée. Toutes les procédures sont publiques par défaut (donc dès lors qu'on ne les déclare pas avec Private, elles sont publiques, c'est à dire qu'elles peuvent être appelées de n'importe où dans le projet). Les procédures privées ne peuvent être appelées qu'à partir du module où elles se trouvent. Les procédures d'évènement sont un cas particulier car elles sont privées par définition (enlever le mot-clé Private ne les rendrait pas publiques) et se déclenchent sur un évènement affectant la feuille à laquelle le module est attaché.
Il ne reste plus qu'à programmer l'action que l'on souhaite réaliser... On commence généralement par tester si la cellule (ou le groupe de cellules) qui a lancé la procédure, fait bien partie des cellules pour lesquelles on veut intervenir et si la cellule a le contenu adéquat pour l'intervention à réaliser. C'est une partie importante si l'on ne veut pas provoquer d'effets indésirables ou ne correspondant pas à ce qu'on souhaite. Target représente la plage modifiée ayant provoqué l'évènement.
Ensuite on définit les éléments nécessaires s'il y a lieu et on code l'opération proprement dite.
Je ne peux guère aller plus loin, tu n'a donné aucun détail...
Cordialement.
Tirs croisés !
Il faut être plus précis. Il faut pouvoir définir le nom du fichier et le chemin du dossier dans lequel il se trouve...