Lien hypertexte vers une cellule/objet

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Normalement, si on ajoute un lien hypertexte à une cellule/objet vers une autre cellule de la même feuille (disons plus en bas sur une feuille très longue en profondeur), et l'on click dessus, on va aller à la cellule désignée, mais celle-ci va s'afficher en bas de l'écran et pas en haut.

Existe-t-il un moyen de réaliser un lien vers une cellule ou un objet, qui sont en bas d'une feuille, afin que le click affiche ces destination en haut de la feuille ?

Merci d'avance pour tout conseil,
Mi
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir ou Bonjour Mi_, le Forum

Je ne t'avais plus vu, et ce week end a été chargé sur le Forum, mais je ne t'ai pas oublié...

La difficulté réside dans le fait que l'atribution d'un Hyperlink à un objet 'Shape' de Forme Automatique annule l'effet de toute macro lui étant affecté...

Donc je m'y suis pris autrement, je te laisse découvrir, c'est du limite barbatruc encore ça !!

Bonne Nuit
@+Thierry [file name=Shape-Moving-To-Rows_20050404001449.zip size=9386]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Shape-Moving-To-Rows_20050404001449.zip[/file]
 

Pièces jointes

  • Shape-Moving-To-Rows_20050404001449.zip
    9.2 KB · Affichages: 33

Mi_

XLDnaute Occasionnel
Bonsoir Thierry et le forum,

Merci de ne pas m'avoir oublié. :)

C'est génial comme barbatruc, en plus c'est très simple & didactique.

Cependant, je rencontre un hic. J'ai des centaines d'objets sur la feuille, et les liens par Mover se veulent vers les lignes 50, ou 60, ou 75. Lorsque je tape '50' dans la zone du nom du Shape avec le macro Mover, le changement n'est pas pris en compte, mais Excel sélectionne automatiquement la shape n°50 déjà existente sur la feuille. J'ai essayé de renommer la shape n°50 en 'ABC', mais Excel le sélectionne toujours quand j'essaye de renommer en '50' le Shape avec le macro Mover.

Sinon je garde l'idée pour des feuilles avec moins d'objets. :)

Merci beaucoup pour ton aide et ton temps,
Mi
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Mi_, le Forum

C'est assez étrange cette sélection intempèstive de Shape, Je n'arrive pas à m'expliquer comment une macro comme celle-ci peut sélectionner un objet Shape :

Sub Mover()
Dim TheRow As Long
TheRow = Val(Application.Caller)
ActiveWindow.ScrollRow = TheRow
End Sub

Ce n'est pas logique....

Es-tu certain que la Shape '50' est sélectionnée (comme lorsque tu cliques à droite dessus, avec des petits carrés sur chaque face) ?

Es-tu certain que toutes les Shapes de ta feuilles ne contiennent plus d'hyperlink ? Car comme je l'ai précisé la justaposition des deux méthodes sur un même objet Shape est mal interprété par Excel car ça désactive la macro affectée.

Es-tu certain que tu ne fais pas de doublon de noms de shapes au moment où tu nommes, car la 'Zone Nom' sert aussi à faire un accès direct à une cellule, une plage nommée ou 'un objet'

Voilà, grosso modo les vérifs à faire, car si tu prends un classeur Vierge et tu testes ceci :

Option Explicit

Sub ShapeGenerator()
Dim Box As Object
Dim i As Integer
Dim Target As Range

For i = 1 To 20000 Step 100
 
   
Set Target = ActiveSheet.Range('A' & i)
       
Set Box = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, _
                  Left:=Target.Left, Top:=Target.Top, Width:=Target.Width, Height:=Target.Height)
           
With Box
                  .OnAction = 'TheMover'
                  .Name = i + 99
                  .TextFrame.Characters.Text = 'Goto ' & i + 99
           
End With
Next
End Sub

Sub TheMover()
Dim TheRow As Long
        TheRow = Val(Application.Caller)
        ActiveWindow.ScrollRow = TheRow
End Sub

Sub Leon() 'le nettoyeur !!! lol
Dim Chekbox As Object

   
For Each Box In ActiveSheet.Shapes
    Box.Delete
   
Next
 
End Sub

Cà tourne Rond Rond Rond, ça ronronne même avec 200 Shapes LOL

Bonne Journée et Semaine
@+Thierry
 

Mi_

XLDnaute Occasionnel
_Thierry écrit:
Es-tu certain que la Shape '50' est sélectionnée (comme lorsque tu cliques à droite dessus, avec des petits carrés sur chaque face) ?[/quote]
Bonsoir Thierry, le forum,

La sélection du 'Shape 50' se fait lorsque j'introduis le nombre 50 dans la cellule du nom du Shape auquel je veux assigner le Mover, et j'appuie Entrée. Cela n'a aucun rapport avec le macro, en fait. Cela ressemble à une sorte de bug, Excel pense peut-être que je cherche le 'Shape 50' existent lorsque je tâpe '50' dans la cellule du nom du Shape que je veux renommer. Et bien que je renomme le 'Shape 50' existent en 'ABC', c'est toujours lui qui est sélectionné lorsque je tâpe '50' dans la cellule du nom ...

C'est bizzarre.

:ermm:
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Mi_

As-tu testé le code que j'ai écrit et mis à ta disposition déjà ?

Si ce test fonctionne chez toi, il va générer 200 Shapes nommées chacune avec des nombres uniques et étant chacune affectée à la Macro 'TheMover'... Ce sera déjà bon signe...

Sinon je pense que tu dois avoir déjà nommé cette Shape défectueuse '50' et que tu n'arrives pas à lui attribuer un nouveau nom... alors 2 moyens : soit tu l'utilises en tant que Shape '50', soit tu la détruis pûrement et simplement !!!

Mais en aucun cas c'est une sorte de bug, Excel ne peux penser que tu cherches 'Shape 50' si tu tapes '50' ...

Bonne Journée
@+Thierry
 

andré

XLDnaute Barbatruc
Salut à tous, et aussi au belge (lol),

J'arrive un peu tard avec une solution, mais mieux vaut tard ...,

Employer 'Affichages personnalisés' sous le menu Affichage.

Enregistrer sous un nom la feuille telle qu'on veut la voir apparaître à l'écran, puis plutôt que d'employer un lien, on appelle ce nom et la feuille apparaît telle qu'on l'a définie.

Pour appeler ce nom, il existe une petite fenêtre à copier/glisser dans la barre d'outils (clic droit dans la barre d'outils puis Personnaliser / Affichage / Affichages personnalisés)

En cliquant sur cette petite fenêtre dans la barre d'outils, puis en cliquant sur son choix, la feuille apparaît telle que désirée.

Mais c'est peut-être un peu trop simple (lol) !

Ândré.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ândré (re je crois), re bonjour Mi_

Ce qui m'a toujours épatté avec toi, c'est que tu fais vraiment partie de ces rares gens qui sont allés chercher toutes les options et toutes les possibilités dans tous les Menus d'Excel et leur personnalisation respective.

En ce 5 Avril 2005, soit environ une douzaine d'années que je 'trafiquouile' ce logiciel en 'me rongeant les onglets' certaines fois (mdr j'ai vu ton autre post) je n'avais jusqu'à lors jamais utilisé de 'CustomViews' qui, en plus, sont bien évidemment pilotables par VBA...

Tu sais que çà va me faire gagner en syntax de codes un max de lignes cette découverte !!!

Merci Ândré, ce qui est génial ici sur XLD c'est aussi notre complémentarité autant irremplaçable qu'indispensable.

Bien à toi, bien à vous, et pas d'abus de côtelettes du Congo (ni de Duvel !)
@+Thierry
 

andré

XLDnaute Barbatruc
Resalut à vous,

Lorsqu'on a peu de moyens, il faut bien exploiter à fond ceux que l'on a !
Je m'étonne toujours de voir certains s'aventurer dans des macros complexes alors qu'ils ne savent même pas écrire une formule sans faute.
Ou bien ceux qui mettent des pièces jointes avec des mises en page sophistiquées (Sophie niquée, dirait C@thy), alors qu'ils demandent un coup de main pour une formule élémentaire.

Enfin, ... il faut de tout pour faire un monde.

André.

PS : pour +@ : je crois que 'trafiquouile' s'écrit avezc un 'c'.
 

Discussions similaires

Réponses
5
Affichages
248

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry