(Résolu) Choix de cellule à l'ouverture d'un lien hypertexte

frasylest

XLDnaute Nouveau
Bonjour à tous, bonne année et meilleurs voeux
Dans le fichier joint, j'aimerai, si c'est possible, que lorsque j'utilise les liens hypertextes, la cellule active dans la feuille demandée, ne soit pas forcément la cellule A1, mais la dernière cellule à la fermeture du dossier.
(Exemple dans le fichier joint : Feuil 2B être LA, dans la Feuil 3C être LA ou ICI ou LALA)
Dans la formule du lien hypertexte, que peut on mettre à la place de A1 pour sélectionner la dernière cellule active.
En passant par une macro, c'est possible mais si on peut faire autrement.
Merci d'avance.
Sylvain
 

Pièces jointes

  • HYPER.xlsx
    14.1 KB · Affichages: 49
Dernière édition:

job75

XLDnaute Barbatruc
Re : Choix de cellule à l'ouverture d'un lien hypertexte

Bonjour frasylest, bienvenue sur XLD,

Voyez le fichier joint et les formules en B3 et B5 de la 1ère feuille.

Attention aux quotes (apostrophes) pour les noms des feuilles...

Sur les liens des objets on ne peut rien faire par formule.

A+
 

Pièces jointes

  • HYPER(1).xls
    42.5 KB · Affichages: 42

job75

XLDnaute Barbatruc
Re : Choix de cellule à l'ouverture d'un lien hypertexte

Re,

Notez qu'on peut utiliser les noms définis _2B et _3C pour atteindre les feuilles.

Fichier (2).

Edit : l'intérêt de cette méthode c'est que les liens fonctionnent même si l'on modifie les noms des feuilles.

A+
 

Pièces jointes

  • HYPER(2).xls
    49 KB · Affichages: 46
Dernière édition:

frasylest

XLDnaute Nouveau
Re : Choix de cellule à l'ouverture d'un lien hypertexte

Merci job75 mais après plusieurs tests ce n'est pas ce que je souhaites. Lorsque l'on clique sur le lien feuil 2B on se retrouve toujours sur la même la case. Ce que je voudrais faire c'est qu'à l'ouverture de feuil 2B la case sélectionnée soit la dernière pointée lors de la fermeture précédente. Exemple : j'ouvre la feuille,je clique sur le lien feuil 2B et la cellule sélectionnée est A20. Je travaille dessus et lorsque j'enregistre et que je ferme la cellule pointée est C15. Quand j'ouvre à nouveau le fichier et que je clique sur feuil 2B, j'aimerai que ce soit la case C15 qui soit sélectionnée. De plus dans la formule =INDEX('Feuil 2B'!$B:$B;EQUIV("zzz";'Feuil 2B'!$A:$A)) que signifie "zzz".Merci A+
 

job75

XLDnaute Barbatruc
Re : Choix de cellule à l'ouverture d'un lien hypertexte

Bonjour frasylest,

Ce que vous voulez faire (mémoriser les cellules actives) n'est pas possible par formule.

Il faut du VBA et ce n'est pas très simple, voyez le fichier joint (Alt+F11).

Dans Module1 :

Code:
Public tablo$() 'mémorise la variable

Sub MemoriseCelluleActive()
Dim F As Object, i As Integer
Set F = ActiveSheet
ReDim tablo(1 To Worksheets.Count, 1 To 2)
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive l'action des événements
For i = 1 To Worksheets.Count
  Worksheets(i).Activate
  tablo(i, 1) = Worksheets(i).CodeName
  tablo(i, 2) = ActiveCell.Address
Next
F.Activate
Application.EnableEvents = True 'réactive l'action des événements
End Sub
Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
MemoriseCelluleActive
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If Target.Address <> "$A$1" Then MemoriseCelluleActive
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si l'on ajoute des feuilles
Sh.Range(Application.VLookup(Sh.CodeName, tablo, 2, 0)).Select
End Sub
Si votre niveau en VBA est faible vous aurez des difficultés à comprendre.

Nota : il est rare que j'utilise Select et Activate en VBA...

Edit : finalement c'est un joli problème, j'ai mis un Like au post #1 :)

A+
 

Pièces jointes

  • HYPER VBA(1).xls
    68 KB · Affichages: 60
Dernière édition:

job75

XLDnaute Barbatruc
Re : (Résolu) Choix de cellule à l'ouverture d'un lien hypertexte

Re,

La solution précédente est lourde car toutes les feuilles sont étudiées (activées) à chaque sélection.

Voici une solution bien meilleure.

La cellule active de chaque feuille est nommée avec le CodeName de la feuille :

Code:
Private Sub Workbook_Open()
Dim F As Object, w As Worksheet
Set F = ActiveSheet
Application.ScreenUpdating = False
For Each w In Worksheets
  w.Activate
  ActiveCell.Name = w.CodeName
Next
F.Activate
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If Target.Address <> "$A$1" Then ActiveCell.Name = Sh.CodeName
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si l'on ajoute des feuilles
Evaluate(Sh.CodeName).Select
End Sub
Fichier (2).

A+
 

Pièces jointes

  • HYPER VBA(2).xls
    61.5 KB · Affichages: 53
Dernière édition:

frasylest

XLDnaute Nouveau
Re : (Résolu) Choix de cellule à l'ouverture d'un lien hypertexte

Merci de cette recherche plus poussée, c'est vrai que c'est encore mieux. Par contre je ne trouve pas le code sur la feuille comme les précédentes. (je fais -develolppeur, macro et c'est vide)
Sylvain
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 534
dernier inscrit
Kalamymustapha