Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Automatisation des changements lorsque le nom de la feuille change

  • Initiateur de la discussion Initiateur de la discussion Tophe2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tophe2

XLDnaute Impliqué
Bonjour le forum
Voila j'ai un fichier ou se trouve des feuilles déjà rempli et d'autres en attente (matrice) ou des liens sont déjà présent pour éviter de devoir tous refaire par la suite, cependant quand je renomme la feuille pour y enter le véritable nom le lien ne suit pas il garde le nom de départ (Ex: Feuil4)
est il possible d'automatiser le changement de lien en cas de changement de feuille.
Ci joint un fichier
Cordialement Christophe.
 

Pièces jointes

Re : Automatisation des changements lorsque le nom de la feuille change

Bonjour Bruno
Tu as raison ma question est mal posée cependant j'ai pensé bien faire en posant une autre question car celle de mon 1er poste ne me convenait pas. De plus je souhaiterai une base de départ en fonction du fichier joint.
Cordialement.
et bon dimanche.
 
Re : Automatisation des changements lorsque le nom de la feuille change

Salut Tophe2,

Ouhhhhaaaaaouuuuu, tu as fait un Up, trop de la balle 😀

Pour ta question
est il possible d'automatiser le changement de lien en cas de changement de nom de feuille.

La réponse est non, on ne peut pas, à ma connaissance, intercepter le changement de nom d'une feuille !
 
Re : Automatisation des changements lorsque le nom de la feuille change

Bonjour Bruno
Alors voilà j'ai trouvé ça sur le forum : https://www.excel-downloads.com/threads/lien-hypertexte-dynamique.67692/

Je me demande si on peut adapter ce code et demander à chercher un mot (qui serait placé à un endroit identique ou non sur les feuilles) et ce mot serait le nom de l'onglet et l'on ferrait abstration de ce fait du nom de la feuille.

je continue les recherches merci encore pour l'aide.
Christophe.

Ou en passant par le (Name) en VBA en non pas le nom de la feuille, je ne sais pas ?
 
Dernière édition:
Re : Automatisation des changements lorsque le nom de la feuille change

Re,

J'ai trouvé une solution qui peut ne pas être trop mal 😀

Comme tu as des cellules en dessous de la ligne 3, qui font appel à une cellule de chaque feuille de calcul.

A chaque changement de nom d'une feuille, cela provoque le recalcul de la feuille récap.

J'ai donc utilisé cet évènement pour mettre à jour les liens.
Voilà le code à mettre dans la feuille "Récap" :
Code:
Private Sub Worksheet_Calculate()
  Dim I As Integer, NbCol As Integer
  Dim VForm As String, NomF As String, VLien As String, NomL As String
  Dim Exclam As Integer
  With Sheets("Récap")
    NbCol = .Range("IV3").End(xlToLeft).Column - 1
    For I = 1 To NbCol
      ' Récupère la formule de chaque cellule
      VForm = .Cells(4, 1 + I).Formula
      ' Récupère l'emplacement du point d'exclamation
      Exclam = InStr(1, VForm, "!")
      ' Récupère le nom de la feuille uniquement
      NomF = Mid(VForm, 2, Exclam - 2)
      ' Récupère le lien Hypertext
      VLien = .Cells(3, 1 + I).Hyperlinks.Item(1).SubAddress
      ' Récupère l'emplacement du point d'exclamation
      Exclam = InStr(1, VLien, "!")
      ' Récuoère le nom de la feuille liée
      NomL = Mid(VLien, 1, Exclam - 1)
      ' Vérifie si le nom de la feuille est différend
      If NomF <> NomL Then
        .Cells(3, 1 + I).Hyperlinks.Delete
        .Hyperlinks.Add Anchor:=Sheets("Récap").Cells(3, 1 + I), Address:="", _
          SubAddress:=NomF & "!A1", TextToDisplay:=NomF
      End If
    Next
  End With
End Sub

Essayes, et tiens nous au courant !

A+
 
Re : Automatisation des changements lorsque le nom de la feuille change

Re
Le code fonctionne correctement c'est super, j'aimerai savoir ce qu'il faut modifier dans le cas ou les liens se trouvent dans la colonne B c'est à dire comme cela. (car plusieurs tableaux différents).

Cordialement et encore merci.
Christophe.
Ci joint le fichier (ce n'est plus par colonne mais je pense par ligne, j'ai essayé de modifier un peu certaines choses mais sans succès)
 

Pièces jointes

Dernière édition:
Re : Automatisation des changements lorsque le nom de la feuille change

Re Bonjour
Suite au code de Bruno peut on me dire les lignes à modifier en fonction du fichier "lien2". car en fonction de là ou se trouve le lien le code fonction ou non.
Cordialement.
Christophe.
 
Re : Automatisation des changements lorsque le nom de la feuille change

Re,

Il faut éffectivement modifier le code pour qu'il fonctionne par ligne et non par colonne 😉

Code:
Private Sub Worksheet_Calculate()
  Dim I As Integer, NbLig As Integer
  Dim VForm As String, NomF As String, VLien As String, NomL As String
  Dim Exclam As Integer
  With Sheets("Récap")
    NbLig = .Range("B65536").End(xlUp).Row - 1
    For I = 2 To NbLig
      ' Récupère la formule de chaque cellule
      VForm = .Cells(1 + I, 3).Formula
      ' Récupère l'emplacement du point d'exclamation
      Exclam = InStr(1, VForm, "!")
      ' Récupère le nom de la feuille uniquement
      NomF = Mid(VForm, 2, Exclam - 2)
      ' Récupère le lien Hypertext
      VLien = .Cells(1 + I, 2).Hyperlinks.Item(1).SubAddress
      ' Récupère l'emplacement du point d'exclamation
      Exclam = InStr(1, VLien, "!")
      ' Récuoère le nom de la feuille liée
      NomL = Mid(VLien, 1, Exclam - 1)
      ' Vérifie si le nom de la feuille est différend
      If NomF <> NomL Then
        .Cells(1 + I, 2).Hyperlinks.Delete
        .Hyperlinks.Add Anchor:=.Cells(1 + I, 2), Address:="", _
          SubAddress:=NomF & "!A1", TextToDisplay:=NomF
      End If
    Next
  End With
End Sub

Voilà 😉
 
Re : Automatisation des changements lorsque le nom de la feuille change

Bonjour Bruno et le forum
Bruno le code fonctionne pas de PB peux tu m'expliquer ce qu'il faut changer si les liens commencent à la ligne 2.... de la colonne B.
Cordialement, Christophe.
 
Re : Automatisation des changements lorsque le nom de la feuille change

Salut Tophe,

Effectivement, je n'avais pas vu le petit bug qui fait commencer à la ligne 1 + I(2) = 3

Il faut simplement changer la 1ère valeur de I
Code:
For I = [COLOR=green][B]1 [/B][/COLOR]To NbLig

Petite explication :
Code:
VForm = .Cells(1 + I, 3).Formula
Cette ligne récupère la formule de la Cellule (.Cells) de la ligne : 1 + I
de la colonne numéro 3 soit "C"

Code:
VLien = .Cells(1 + I, 2).Hyperlinks.Item(1).SubAddress
Cette ligne récupère le lien de la cellule (.Cells) de la ligne : 1 + I
de la colonne numéro 2 soit "B"

Voilà 😉
 
Re : Automatisation des changements lorsque le nom de la feuille change

Re Bonjour
J'essai de mettre en forme Le lien Hypertexte après le changement du nom de l'onglet car à l'origine mes liens sont centré (verticalement et horizontalement) car lorsqu'un nom change la mise en forme du lien change, je l'ai placé à la fin de ton code mais cela ne fonctionne pas peut on le mettre là ou faut il passer par ailleur pour refaire une mise en forme (colonne B endroit où sont les liens).

Cordialement Christophe.
 
Re : Automatisation des changements lorsque le nom de la feuille change

Salut Tophe,

Il faut placer ton code au moment ou je refais le lien
Code:
...
      If NomF <> NomL Then
        .Cells(1 + I, 2).Hyperlinks.Delete
        .Hyperlinks.Add Anchor:=.Cells(1 + I, 2), Address:="", _
          SubAddress:=NomF & "!A1", TextToDisplay:=NomF
 
' ICI ça devrait fonctionner
With .Cells(1 + I, 2)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

      End If
...

Voilà 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
1 K
Réponses
3
Affichages
748
Réponses
0
Affichages
721
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…