Lien hypertexte via VBA

Résolu/Fermé
mathieu - 24 août 2011 à 16:23
 mathieu - 25 août 2011 à 10:35
Bonjour,

je cherche à automatiser par VBA la création des liens hypertextes pour la ligne 1 à partir de la colonne P.
Sur chaque feuille le nombre de cellules non vides après P1 est variable
c'est à travers derco que je détermine ce nombre de cellules
derco = conum_coalpha(ActiveSheet.Range("XFD1").End(xlToLeft).Column)

donc j'ai écrit ce code mais il plante sur la définition de la zone. l'objectif étant que la fonction hyperlink soit initiée pour chaque cellule avant de passer à la feuille suivante

Dim Lien
Lien = "X:\QEHS\QA_DOC_FE\QA_FOURNISSEURS\7_INCOMING\Certificats Produits chimiques\" & Left(Range("A1"), 8) & " " & Range("P1") & " " & Mid(Range("A1"), 10) & ".pdf"
zone = ActiveSheet.Range("P1") & ":" & Range(derco & 1).Select ' >>> ici ça plante
Dim sh As Worksheet
Dim cell As Range
For Each sh In ActiveWorkbook.Sheets
sh.Activate
For Each cell In zone
ActiveSheet.Hyperlinks.Add Anchor:=zone, Address:=Lien
Next cell

Next sh

j'ai essayé en définissant juste P1 et ça fonctionne, la boucle sur chaque feuille fonctionne aussi

si vous pouviez me donner un coup de main

2 réponses

bonjour

Dans derco tu dis avoir le nombre de cellules non vides.
donc si derco vaut 9 ,dans Range(derco & 1).Select la valeur de ton range sera 91
range n'accepte que des coordonnées du type "A2"

de plus Range(derco & 1).Select, comme son nom l'indique, sélectionne une cellule , mais ne renvoie pas sa valeur. Il faudrait écrire Range(derco & 1).Value ou même Range(derco & 1) tout simplement.

Par ailleurs si zone doit être la définition d'une plage; il faudrait juste :

zone= "P1:" & "P" & derco (si j'ai bien tout compris!)

A+

edit: ou plutot ça:

plage ="P1:" & "P" & derco
zone = range( plage )
1
bonjour et merci de t'intéresser à ma problématique.
en fait derco me donne la lettre de la dernière colonne non vide
mon but est de déterminer sur quelle zone la fonction hyperlink doit s'appliquer
pour uen feuille ça sera de P1:Z1, une autre feuille de P1:AM1 etc etc
0
voici une feuille du fichier
http://www.cijoint.fr/cjlink.php?file=cj201108/cijbK13Jr6.xls
le code qui me pose soucis est celui du bouton MAJ, à la fin, après 'ICI
0
j'ai trouvé ce qui n'allait pas, je tenais absolument à mettre un range (derco & 1) mais du coup il me sortait la valeur de la dernière colonne occupée alors que je voulais l'adresse de cette colonne
en écrivant ceci :
For Each cell In Range("P1" & ":" & derco & 1)
plus de soucis, mes liens hypertexte se font sur toutes les cases à partir de P1
1