Mise en page liens hypertextes automatiquement

Leché

XLDnaute Junior
Bonjour à tous et à toutes,

Je cherche un code VBA permettant d'affecter automatiquement des liens hypertextes en fonction de la valeur d'une cellule et donc en fonction du nom du fichier.

Le but serait que pour chaque valeur saisie dans la colonne B2 (image 1) , le plan (image 2) soit automatiquement affecté en lien hypertexte à la cellule.

A savoir que les 10 premiers chiffres des cellules en B, correspondent à chaque fois aux 10 premières valeurs du numéro du plan.


2.PNG
1.PNG


A vos idées..
En vous remerciant d'avance pour vos réponses.
Je reste attentif a vos réponses

Cordialement,
 
Solution
J'ai fait un classeur indépendant dans lequel tu précises les informations / paramètres de traitement.
J'ai considéré que les fichiers Plans étaient de type .TIF ce qui exclu la recherche d'autres fichiers.
Aussi que les fichiers Plans étaient regroupés dans un répertoire unique.
C'est facilement modifiable.

Edit: fichier modifié le 09/12/2020 à 18h20

Dudu2

XLDnaute Barbatruc
Reprends le fichier que je viens de modifier et dans lequel j'ai corrigé un petit bug pour la suppression des liens hypertextes éventuels qui n'a aucune chance de se produire dans ce contexte mais pour le principe. :cool:
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Il faut prendre le fichier du message #10

Bug: (au-delà de 1 ça bug, mais tu n'en as jamais plus d'1)
VB:
        'Suppression des liens hypertextes éventuels
        For i = 1 To Cellule.Hyperlinks.Count
            Cellule.Hyperlinks(i).Delete
        Next i
Pas bug:
VB:
        'Suppression des liens hypertextes éventuels
        Do While Cellule.Hyperlinks.Count
            Cellule.Hyperlinks(1).Delete
        Loop
 

Leché

XLDnaute Junior
Question: les fichiers plans sont dans un répertoire ou dispersés dans un répertoire et ses sous-répertoires ?

Question: tous les plans sont des fichiers TIF ?

Bonjour Dudu2,

Je reviens vers vous concernant la question ci-dessous, mon besoin à changé. En juin mes plans étaient sous format .TIF , aujourd'hui nous passons progressivement sur des formats .PDF , cela me génère une erreur (du moins je suppose) a cause des ces plans PDF.

Lors de l'exécution de la macro , j'ai un message d'erreur (voir ou cela bloque sur PJ ERROR 10) pour ce rendu (voir PJ ERROR 20) , la cellule dont il n'y a pas de lien hypertexte est un nouveau fichier PDF en question..

Que faire ?

Cordialement,
 

Pièces jointes

  • error 20.PNG
    error 20.PNG
    8.2 KB · Affichages: 7
  • error 10.PNG
    error 10.PNG
    23.2 KB · Affichages: 9

Dudu2

XLDnaute Barbatruc
Bonjour,
Reprends le fichier en Post #10.

Tu peux:
- soit spécifier la liste des extensions des fichiers Plans,
- soit ne rien spécifier et dans le répertoire des fichiers Plans, le programme prendra le 1 fichier dont le nom match le contenu de la cellule quelque soit son extension.

Je ne sais pas d'où vient l'erreur 20 car elle résulte d'un Resume Next sans contexte d'erreur et je n'ai pas ça dans mon code. Vérifie ton propre code.
J'ai toutefois sécurisé le test en ajoutant un CStr: If Len(Trim(CStr(Cellule.Value))) > 0 Then
 
Dernière édition:

Leché

XLDnaute Junior
Bonjour,
Reprends le fichier en Post #10.

Tu peux:
- soit spécifier la liste des extensions des fichiers Plans,
- soit ne rien spécifier et dans le répertoire des fichiers Plans, le programme prendra le 1 fichier dont le nom match le contenu de la cellule quelque soit son extension.

Je ne sais pas d'où vient l'erreur 20 car elle résulte d'un Resume Next sans contexte d'erreur et je n'ai pas ça dans mon code. Vérifie ton propre code.
J'ai toutefois sécurisé le test en ajoutant un CStr: If Len(Trim(CStr(Cellule.Value))) > 0 Then

Merci pour ton retour, je n'ai pas mon PC ce soir , je regarde demain.

Concernant le second point , il faut que le nom match a 100% pour attribuer le lien ? Car je récupère les plans sous forme d'export, donc il y a généralement d'autres caractères qui suivent derrière. Cependant les 8 premiers chiffres correspondent a la cellule ciblée :)

Bonne soirée, je te tiens au courant demain.
 

Dudu2

XLDnaute Barbatruc
il faut que le nom match a 100% pour attribuer le lien ?
Non, il suffit que les caractères de la cellule soient le début du nom du fichier.
VB:
'Recherche du fichier correspondant
For i = 1 To UBound(TableauNomsFichiers)
If UCase(Trim(CStr(Cellule.Value))) = Left(UCase(Trim(TableauNomsFichiers(i))), Len(Trim(CStr(Cellule.Value)))) Then Exit For
Next i
 

Discussions similaires

Haut Bas