OVH Cloud OVH Cloud

nom de cellule du lien hypertexte

18 réponses
Avatar
magic-dd
Bonsoir

sur la Feuil 1 j'ai en cellule A1 le nom d'une voiture ( renault)
=20
cette cellule =E0 un lien hypertexte qui m'emmene sur la feuil3 quand je cl=
ik dessus

comment faire pour qu'=E0 l'ouverture de cette Feuil3,en cellule E6 je puis=
se r=E9cup=E9rer la valeur de la cellule sur laquelle j'ai cliqu=E9 via son=
lien hypertxt

soit au final retrouver renault en Feuil3 E6 si j'ai cliqu=E9 en feuil1 sur=
le lien hypertexte renault situ=E9 en A1

merci

8 réponses

1 2
Avatar
MichD
Désolé, je ne connais rien au Mac!


MichD
---------------------------------------------------------------
Avatar
magic-dd
je viens de destocker le mini pc

et la ca fonctionne

donc nickel

mon office mac me fait des miseres va falloir que je regarde

en tout cas merci pour le fichier
Avatar
webcosmopolite
Le vendredi 03 Mai 2013 à 22:20 par magic-dd :
Bonsoir

sur la Feuil 1 j'ai en cellule A1 le nom d'une voiture ( renault)

cette cellule à un lien hypertexte qui m'emmene sur la feuil3 quand je cl=
ik dessus

comment faire pour qu'à l'ouverture de cette Feuil3,en cellule E6 je puis=
se récupérer la valeur de la cellule sur laquelle j'ai cliqué via son=
lien hypertxt

soit au final retrouver renault en Feuil3 E6 si j'ai cliqué en feuil1 sur=
le lien hypertexte renault situé en A1

merci


Up !

Salut MichD &Co

Merci pour ton code :)

J'ai trouvé ce code intéressante :)

Par contre chez moi je rencontre un problème : si je ne renomme pas mes feuilles (Feuil1, feuil2, ...) le code fonctionne nickel mais si je les renommes, j'ai une erreur de type 'Erreur d'Execution 9 - L'indice n'appartient pas à la sélection" ... je ne sais comment résoudre le problème étant moi même un débutant en VBA

Deuxième question est -il possible au lieu de copier la valeur de la cellule dans une autre cellule, de le copier dans une combobox ?

3ème question : est-il possible de pointer un lien hypertexte vers une combobox ?

Je vous remercie d'avance pour vos réponses :)
Avatar
MichD
Les messages précédents de ce fil ne s'affichent pas
dans le lecteur de "news". Si je t'ai donné un code
ou un fichier exemple, pourrais-tu les publier à
nouveau afin de rafraîchir ma mémoire!


MichD
---------------------------------------------------------------
Avatar
webcosmopolite
Le vendredi 03 Mai 2013 à 22:20 par magic-dd :
Bonsoir

sur la Feuil 1 j'ai en cellule A1 le nom d'une voiture ( renault)

cette cellule à un lien hypertexte qui m'emmene sur la feuil3 quand je cl=
ik dessus

comment faire pour qu'à l'ouverture de cette Feuil3,en cellule E6 je puis=
se récupérer la valeur de la cellule sur laquelle j'ai cliqué via son=
lien hypertxt

soit au final retrouver renault en Feuil3 E6 si j'ai cliqué en feuil1 sur=
le lien hypertexte renault situé en A1

merci


Voici le code :

Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim As String
Worksheets(Split(Target.SubAddress, "!")(0)). _
Range(Target.SubAddress) = Target.Parent

End Sub
Avatar
MichD
| si je ne renomme pas mes feuilles
|une erreur de type 'Erreur d'Execution 9

Si tu changes le nom des feuilles, les liens hypertextes
ne sont pas mises à jour et ils font référence à une
feuille qui n'existe plus.

Si tu veux cliquer dans la cellule A1 de la "feuil1" et te
retrouver directement dans la cellule A1 de la "feuil3"
en incluant la valeur de la première dans la dernière,
je te suggère une autre approche que le lien hypertexte.

Dans la fenêtre VBA, la liste des objets du projet VBA est
listée. Les feuilles sont décrites de cette manière.

Feuil1(Feuil1)
Feuil2(Feuil2)

Feuil1 est le nom de l'objet "Feuille" du projet VBA
(Feuil1) représente le nom de l'onglet de la feuille de calcul.

Dans le module feuille de ton choix, tu peux copier cette procédure
et adapter "Feuil3" pour le nom de l'objet "Feuille" de ton classeur.

Le nom de ces objets ne change pas même si l'usager modifie
le nom de l'onglet de la feuille.

'-------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
Application.Goto Feuil3.Range("A1")
ActiveCell = Target.Value
End If
End Sub
'-------------------------------------------

Question II

Si ton combobox est dans la feuil3, tu modifies le code de la
façon suivante. La procédure ajoute l'élément à la liste du
combobox + affiche la valeur de la cellule source.

Le contrôle "Combobox" émane de la barre d'outils "Contrôle".

'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
Application.Goto Feuil3.Range("A1")
With Feuil3.ComboBox1
.AddItem Target.Value
.Value = Target.Value
End With

End If
End Sub
'--------------------------------

Question III : est-il possible de pointer un lien hypertexte vers une
combobox
Non.

Mais tu peux utiliser les événements de la feuille pour sélectionner et
ouvrir
la liste d'un combobox. Voici un exemple :

Si tu cliques dans la cellule A1, la liste du combobox s'affiche!
'------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
SendKeys "~"
Me.ComboBox1.Activate
SendKeys "%{DOWN}"
End If
End Sub
'------------------------------------

MichD
---------------------------------------------------------------
Avatar
webcosmopolite
Le vendredi 03 Mai 2013 à 22:20 par magic-dd :
Bonsoir

sur la Feuil 1 j'ai en cellule A1 le nom d'une voiture ( renault)

cette cellule à un lien hypertexte qui m'emmene sur la feuil3 quand je cl=
ik dessus

comment faire pour qu'à l'ouverture de cette Feuil3,en cellule E6 je puis=
se récupérer la valeur de la cellule sur laquelle j'ai cliqué via son=
lien hypertxt

soit au final retrouver renault en Feuil3 E6 si j'ai cliqué en feuil1 sur=
le lien hypertexte renault situé en A1

merci


Salut MichD

Désolé j'étais en vacances et je pensais que le site allait m'envoyé un mail si il y avait une réponse mais apparemment non ^^ (me semblait être abonné à la discussion :s)

Donc merci pour tes réponses !

Donc j'ai testé l'une de tes solutions :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
Application.Goto Feuil3.Range("A1")
With Feuil3.ComboBox1
.AddItem Target.Value
.Value = Target.Value
End With


Problèmes :

1) si les liens hypertexte sont par exemple dans une colonne B par exemble je modifie la ligne comme suit ? :
Application.Goto Feuil3.Range("B:B")

2) les valeurs (valeur +liens hypertexte) de la colonnes sont générées par un code qui recherche dans un autre tableau, le code est de type :
Cells(ligne, 2).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=_"'Feuil'!A1", TextToDisplay:=c.Offset(, -2).Value

Donc tous les liens hypertexte pointent vers la cellule A1 de la Feuil1

Mais dés que je génère le tableau, ton code s'active et fais bugué le code gènérant le tableau alors que si j'ai bien compris normalement il faut cliqué sur le lien pour faire marché ton code.

De plus apparemment c'est la ligne :
.AddItem Target.Value
Qui pose problème : Erreur 70, Accès refusé

Je te remercie d'avance de ta patience et de ton aide
Avatar
MichD
Si tu dois modifier le nom de la feuille régulièrement :

Possibilité I

A ) Je n'ai jamais écrit que tu devais conserver les liens hypertextes.
Au contraire, je t'ai suggéré d'utiliser une procédure événementielle
de la feuille de calcul pour passer à une autre cellule sur une autre
feuille.

Si tu conserves les liens hypertextes dans les cellules, dès que tu
cliqueras
le lien hypertexte essaie de s'exécuter, si le nom de la feuille a été
modifié,
le lien hypertexte va générer une erreur avant même que la procédure
événementielle
ait eu le temps de s'exécuter correctement.

Je t'ai suggéré d'utiliser l'événement "Worksheet_SelectionChange" mais
tu pourrais
aussi bien utiliser l'événement "Worksheet_BeforeDoubleClick". Cela
dépend de tes
besoins.

On peut modifier la procédure, si tu sais exactement ce que tu veux
faire pour chacune
des cellules où tu voulais créer un lien hypertexte.


Possibilité II

Pour créer les liens hypertextes, tu utilises la formule suivante :
=LIEN_HYPERTEXTE("[nomClasseur.xls]'nomOnglet'!cellule";"TexteAffiché)

À chaque fois que tu changes le nom de la feuille, tu peux utiliser
la commande de la feuille de calcul "Rechercher / remplacer" et
dans les options de la fenêtre, choisir dans la liste déroulante :
"Regarder dans " : Formules et décocher l'option "totalité du
contenu de la cellule" si cette dernière est cochée.
"Formule". Au besoin tu peux désigner le classeur plutôt
que la feuille pour que le remplacement du nom de l'ancien
onglet de la feuille soit remplacé par le nouveau nom, et ce,
dans toutes les formules de la feuille et du classeur.

Il n'existe pas de procédure événementielle qui s'exécute lors
de la modification du nom de l'onglet d'où l'impossibilité
d'automatiser la chose.

Possibilité III

Tu modifies manuellement chacun des liens hypertextes dès
que tu modifies le nom de l'onglet.


MichD
---------------------------------------------------------------
"webcosmopolite" a écrit dans le message de groupe de discussion :


Le vendredi 03 Mai 2013 à 22:20 par magic-dd :
Bonsoir

sur la Feuil 1 j'ai en cellule A1 le nom d'une voiture ( renault)

cette cellule à un lien hypertexte qui m'emmene sur la feuil3 quand je
cl > ik dessus

comment faire pour qu'à l'ouverture de cette Feuil3,en cellule E6 je
puis > se récupérer la valeur de la cellule sur laquelle j'ai cliqué via
son > lien hypertxt

soit au final retrouver renault en Feuil3 E6 si j'ai cliqué en feuil1
sur > le lien hypertexte renault situé en A1

merci


Salut MichD

Désolé j'étais en vacances et je pensais que le site allait m'envoyé un mail
si
il y avait une réponse mais apparemment non ^^ (me semblait être abonné à la
discussion :s)

Donc merci pour tes réponses !

Donc j'ai testé l'une de tes solutions :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
Application.Goto Feuil3.Range("A1")
With Feuil3.ComboBox1
AddItem Target.Value
Value = Target.Value
End With


Problèmes :

1) si les liens hypertexte sont par exemple dans une colonne B par exemble
je
modifie la ligne comme suit ? :
Application.Goto Feuil3.Range("B:B")

2) les valeurs (valeur +liens hypertexte) de la colonnes sont générées par
un
code qui recherche dans un autre tableau, le code est de type :
Cells(ligne, 2).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:=_"'Feuil'!A1", TextToDisplay:=c.Offset(, -2).Value

Donc tous les liens hypertexte pointent vers la cellule A1 de la Feuil1

Mais dés que je génère le tableau, ton code s'active et fais bugué le code
gènérant le tableau alors que si j'ai bien compris normalement il faut
cliqué
sur le lien pour faire marché ton code.

De plus apparemment c'est la ligne :
AddItem Target.Value
Qui pose problème : Erreur 70, Accès refusé

Je te remercie d'avance de ta patience et de ton aide
1 2