Lien Hypertexte conditionnel

C

CactusX

Guest
Bonsoir le Forum,

Après quelques recherches et sauf erreur de ma part, je n'ai pas trouvé le moyen d'utiliser un lien hypertext permettant d'ouvrir un classeur sur une feuille précise.

Par défaut en cliquant sur le lien hypertext le classeur s'ouvre mais la dernière feuille utilisée avant sauvegarde.

Quelqu'un à t-il une idée ?

Merci à vous.
 
@

@+Thierry

Guest
Re CactusX

En fait dans cette démo on est en mono classeur et on parle de SubAddress

Donc si tu veux pointer sur un classeur et sur une feuille précise çà donnerait ceci :


With Sheets(X)
.Hyperlinks.Add .Range("A1"), Address:="C:\Mes Documents\Mes Classeurs\TheClasseur.xls", _
SubAddress:="LaFeuilleQueJeFeux!B200", TextToDisplay:="Home Sweet Home"
End With

Bonne Nuit
@+Thierry
 
R

romfret

Guest
salut cactusX et re @+thierry et le forum,


Je ne pense pas qu'il s'agisse de cela son probleme est que quand il ouvre un classeur il veut que ce soit une certaine feuille qui soit activée mais le lien est déjà fait , pas de probleme la dessus si ce que je dit est vrai alors ce petit code est a mettre dans ton vba :

Worksheets("le_nom_de_ta_feuille").Activate

ou si c'esrt un classeur que tu veux activé :

Worksheets("le_nom_de_ton_classeur et surtout ne pas oublié:.XLS").Activate

Tien nous au courant

@+ romfret
 
@

@+Thierry

Guest
Re Bonsoir RomFRet

Heuf, il me semble que l'on parle de lien Hypertext dans ce fil Romfret...

Et l'on peut "viser" un classeur sur une feuille précise et même à la cellule près !!! avec un lien HyperText...

Maintenant, "of course" oui, on peut systématiquement ouvrir le classeur sur une Feuille précise avec une macro dans ThisWorkBook soit dans Workbook_Open() pour choisir une feuille... (et le must c'est de le faire dans Workbook_BeforeClose, comme çà c'est plus propre) Mais je pense que la question de CactusX est bien de trouver le moyen d'utiliser un lien hypertext permettant d'ouvrir un classeur sur une feuille précise...

Bon ben je vous laisse pour ce soir
Faites de Beaux Rêves
@+Thierry
 
C

CactusX

Guest
Bonsoir le Forum romfret, @+Tthierry,

Thierry à parfaitement compris ma demande.

Ceci fonctionne :

With Sheets(1)
.Hyperlinks.Add .Range("A1"), Address:="C:\crac\crac\MY27.xls", _
SubAddress:="1!C11" ', TextToDisplay:="Cliquez"
End With

Cependant, le Message "Cliquez n'apparaît pas.

=> TextToDisplay:="Cliquez" génère une erreur (sous XL97).

Si vous pouviez vérifier de votre coté.

Maintenat il ne reste plus qu'à afficher ce lien en Colonne S et un numéro de ligne x (variable)
, on a beau se positionner là ou il faut par exemple :

Range("B22").Select
Range("B22").Activate

Le lien se place toujours toujours en A1.


Merci à vous et bonne nuit à vous.
 
@

@+Thierry

Guest
Re Salut CactusX !!

Hi hi hi je me doutais que j'avais compris ;-)

Ben c'est normal si tu écris

With Sheets(1)
.Hyperlinks.Add .Range("A1"), Address:="C:\crac\crac\MY27.xls", _
SubAddress:="1!C11" ', TextToDisplay:="Cliquez"
End With

Tu peux mettre 50 milles Range("B22").Select avant çà n'y fera rien !! lol (et puis entre nous les "Select" c'est de la M.... dans les Macro !!, sauf si vraiment il faut que le User arrive en fin de macro sur une cellule précise)

Donc ....

Dim LaCellule As Range
LaCellule = ActiveCell '<<<<<<<<< (ou autre chose)
With Sheets(1)
.Hyperlinks.Add .LaCellule, Address:="C:\crac\crac\MY27.xls", _
SubAddress:="1!C11" ', TextToDisplay:="Cliquez"
End With

Allez cette fois ci je coupe l'ordi !!

Bonne Nuit
@+Thierry
 
R

romfret

Guest
Bonjour tous le monde,



Oh , je me doutai que j'aurai en core rien compris !
smiley_398.gif




smiley_724.gif




@mic@lement romfret
 
C

CactusX

Guest
Bonsoir Thierry, le forum,

Merci pour les infos. Concernant le "TextToDisplay" qui ne fonctionne pas, est ce à cause d'XL97 ?

Si oui, il doit bien y avoir un moyen car la Fonction :
=LIEN_HYPERTEXTE() fonctionne avec un message.

Bonne soirée à tous.
 
@

@+Thierry

Guest
Re: Lien Hypertexte EXCEL 1997 => ASSISTANCE DEMANDEE svp (merci)

Salut CactusX, le Forum

Je n'ai plus aucun PC avec Excel 97........

Mais je fais une Demande Publique

Merci d'avance pour CactusX

Bon Wouik Hand
@+Thierry
 
M

michel

Guest
Re: Lien Hypertexte EXCEL 1997 => ASSISTANCE DEMANDEE svp (merci)

Bonjour CactusX , romfret, @+Thierry

TextToDisplay ne fonctionne pas non plus chez moi (excel97)

J'ai interprété en vous lisant qu'il correspond au texte qui va apparaitre dans la cellule du lien hypertexte

CactusX , peux tu essayer cette version (un peu simpliste... ) et me dire si ça correspond à ta demande

ActiveCell = "Cliquez ici"
Hyperlinks.Add Anchor:=ActiveCell, _
Address:="C:\crac\crac\MY27.xls", _
SubAddress:="feuil2!C11"

bonne Journée
Michel
 
C

CactusX

Guest
Bonsoir tout le monde,

Michel, j'ai essayé ce que tu proposes et ça ne fonctionne pas Erreur dans VBA. Cependant tu m'a donné une idée, peu être pas très catholique la méthode mais cela marche :

Dim MonFichier, xyAffichage, xyNuméroOnglet As String
Dim NuméroOnglet As Variant

MonFichier = "C:\crac\crac\MY27.xls"
NuméroOnglet = 2 ' <= Nom de l'onglet
xyNuméroOnglet = "C11"
OngletPosition = Str(NuméroOnglet) & "!" & xyNuméroOnglet
xyAffichage = "C3"

Range(xyAffichage) = MonFichier & " Onglet N° " & Str(NuméroOnglet)
With Sheets(1)
.Hyperlinks.Add .Range(xyAffichage), Address:=MonFichier, _
SubAddress:=OngletPosition
End With

'Nota : MY27.xls est composée de feuilles portant des noms de 1 à x


Voila.

Il n'a plus qu'à attendre les commentaires de Thierry.

Bonne soirée.
 
@

@+Thierry

Guest
Bonsoir CactusX, Michel et Romfret et le Forum


Je trouve que c'est une peu compliqué juste pour écrire une string fixe ?

Pour ta gouverne :
"Dim MonFichier, xyAffichage, xyNuméroOnglet As String"

2quivaut à écrire :
Dim MonFichier As Variant, xyAffichage As Variant, xyNuméroOnglet As String

et Variant (par défaut si la variable n'est pas ou mal déclarée) est bien plus gourmand en ressorce mémoire...

Donc j'écrirais comme ceci :
Sub Cactus()
Dim MonFichier As String, xyAffichage As String, xyNuméroOnglet As String, OngletPosition As String
Dim NuméroOnglet As Byte '<<<(si Numéro jusqu'à 255, sinon as Integer)

MonFichier = "C:\crac\crac\MY27.xls"
NuméroOnglet = 2
xyNuméroOnglet = "C12"
OngletPosition = Str(NuméroOnglet) & "!" & xyNuméroOnglet
xyAffichage = "C3"

Range(xyAffichage) = MonFichier & " Onglet N° " & Str(NuméroOnglet)
With Sheets(1)
.Hyperlinks.Add .Range(xyAffichage), Address:=MonFichier, _
SubAddress:=OngletPosition
End With
End Sub

Mais j'ose espérer que ces variables seront initialisées autrement que par du text en dûr dans le code ?

Bonne NUit en tout cas et bon Dimanche à tous et toutes
@+Thierry
 
C

CactusX

Guest
Bonsoir Thierry, le forum,

Merci pour la procédure personnalisée. Malgré un XL plus récent que le mien, il ne permet toujours pas certaine fantaise : Sub Cactus)(

Concernant les variables, ce n'était que pour un essai rapide. Elles font l'objet d'une page spéciale où elles figurent toutes, même le nom de différentes colonnes pour d'éventuels changements à venir.


Bonne soirée.

A+
 

Discussions similaires

Réponses
3
Affichages
559

Statistiques des forums

Discussions
314 085
Messages
2 105 629
Membres
109 401
dernier inscrit
LE CLUB