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

XL 2021 Coloriser et décoloriser une cellule activée par lien hypertexte

JMC

XLDnaute Junior
Bonjour,

Tableau financier d'une association. Plusieurs feuilles de janvier à décembre, puis journal général avec un lien texte pour chaque catégorie (par exemple "Cotisations adhérents" et le montant de janvier). Je voudrais coloriser et décoloriser une cellule entière activée par lien hypertexte. La page de janvier que j'ai volontairement coloriser pour montrer ce que j'aimerais avoir. Et bien sur, qui se décolorise lorsque je clique sur un autre lien, ou dans une case à coté.
Merci pour votre aide

 
Solution
Bonjour le forum,

Le problème posé au post #1 est clair et je ne comprends pas qu'on en soit au 41ème post.

Il suffit de mémoriser la cellule cible :
VB:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
On Error Resume Next
[Cible].Interior.ColorIndex = xlNone 'efface la couleur
Evaluate(Target.SubAddress).Name = "Cible" 'cellule nommée pour la mémoriser
[Cible].Interior.Color = vbYellow 'colore la cellule
End Sub
A+

JMC

XLDnaute Junior
Bonjour à tous,
Je suppose que personne ne veut m'aider vu le dernier message de Phil69970 qui me dite : "Bonne chance" (voir son message #14#) parce que je me suis trompé deux ou trois fois en joignant un fichier joint.... au lieu d'aider les gens qui ne sont pas spécialiste.
Je vais être banni mais pas grave.
Alors si quelqu'un veut prendre le relais et m'aider dans ma demande, je lui en serai reconnaissant.
Cordialement

 

patricktoulon

XLDnaute Barbatruc
Bonjour
je te suggère d'aller voir ceci tu pourrais t'en inspirer

après à la sélection du lien vers la cellule je pense que l'event change suffirait
au mieux un flag a la sélection de la feuille des lien et l'event shange dans le thisworkbook
bref il y a certainement à faire
 

crocrocro

XLDnaute Impliqué
Bonjour le fil,
@JMC a commis probablement des maladresses mais, nouveau sur le site, je pense qu'il faut être indulgent.
Les habitués ont dû voir passer pas mal de posts où il y avait bien plus de raisons de s'agacer !
Bon, c'est l'automne, il pleut, on va passer à l'heure d'hiver, alors on peut comprendre une poussée de mauvaise humeur passagère.
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@JMC

Tu me prêtes un pouvoir que je n'ai pas
Je vais être banni mais pas grave.

En ce qui me concerne 15 messages pour avoir un fichier vaguement d'aplomb cela me dépasse et surtout avec des bouts d'explications minuscules c'est ce qui m'a fait dire au post # 14 "Bonne chance"
Dit autrement je passe mon chemin et laisse à d'autres personnes de répondre si elles comprennent mieux que moi la demande.

De plus ne pas avoir expliqué correctement ou savoir s'expliquer/s'exprimer correctement sur un forum n'est pas un motif de "bannissement" et heureusement car des jours le forum serait désert !!!!
Idem pour le fichier qui n'est pas le bon mais plutôt lasse la personne qui essaye d'aider tout simplement.

Après il y a des jours ou le demandeur est "moins bon que d'habitude" et il y a des jours ou ceux qui veulent aider sont "moins réceptifs que d'habitude"
Et pour terminer on va dire que nous sommes tous les deux pour cette demande dans un jour "sans"
Match nul balle au centre !!!!
 

crocrocro

XLDnaute Impliqué
Rebonjour le fil,
voici le code à mettre dans la feuille JOURNAL GENERAL 2025
et bien sûr, il faut enregister sous le fichier avec l'extension .xlsm

VB:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim Lien As String, Cellulelien As String, FeuilleLien As String
    Lien = Target.Range.Hyperlinks.Item(1).SubAddress
    FeuilleLien = Left(Lien, InStr(1, Lien, "!") - 1)
    Cellulelien = Mid(Lien, InStr(1, Lien, "!") + 1)
    Sheets(FeuilleLien).Range(Cellulelien).Interior.Color = vbYellow
End Sub

EDIT : le fichier en pj
Dans mon code, j'ai fait la supposition suivante : tous les liens hypertexte de la feuille sont sur le même schéma que celui de Cotisations adhérents (J6)
@TooFatBoy : Je ne suis pas de mauvaise humeur

EDIT 2 : je n'ai pas compris quand doit-on décoloriser ?
 

Pièces jointes

  • Fichier Comptable UNC 2025 pour essai au 15.10.24.xlsm
    68.6 KB · Affichages: 4
Dernière édition:

JMC

XLDnaute Junior
Bonjour à tous,
Je vous prie de m'excuser si mes propos ont vexés certains. Je suis débutant dans ce magnifique outils qu'est excel. Mais nous avons tous débuter au bas de l'échelle un jour ou l'autre.
Ma demande est simple. Tout est dans le titre "Coloriser et décoloriser une cellule activée par un lien hypertexte" Lorsque je clique sur un lien dans "Journal Général" (par exemple "Janvier" et "Cotisations Adhérents(es)") celui ci me renvoie sur le mois concerné à la colonne "Cotisations..."
Lorsque je clique sur une autre demande (peu importe le mois et la cellule), que ma dernière demande soit décoloriser pour laisser place à ma nouvelle demande, et ainsi de suite.

Bonjour et merci.
Je parlais plutôt de moi pour la mauvaise humeur...
Ce que j'entends par décoloriser, c 'est lorsque je clique sur un autre lien dans le" journal general", que la cellule de ma demande précédente redevienne neutre et que la nouvelle se colorise et ainsi de suite. De même si je clique sur une autre cellule dans la page du même mois.. Je suis un peu compliqué je le reconnais.
Petite question ; pour les autres mois janvier à décembre, cela se fera automatiquement lorsque je créerai un lien hypertexte ?
J'ai oublie de dire que le fichier que j'ai mis en piece jointe, n'est pas le définitif. Celui là il n'y a que 3 mois.
Encore merci
 

crocrocro

XLDnaute Impliqué
Avec cet dernière précision, il me semble comprendre le but recherché (mais je peux me tromper) :
n'est-il pas simplement de mettre en évidence la cellule active dans la feuille Janv Fév ...
Finalement, peu importe si on y est arrivé depuis un lien hypertexte ou non.
La règle pourrait être si je suis sur les feuilles Jan, Fev ou Mars (actuellement), si j'ai sélectionné une seule cellule, si cette cellule se situe à partir de la ligne 6 (à voir quelle règle pour la colonne), je la colorise en jaune (par exemple) et dès que je change de cellule, je la décolorisee.
Et pour faire simple d'un point de vue programmation, je décolorisee toute le tableau puis je me pose la question cellule unique ...
Petite question ; pour les autres mois janvier à décembre, cela se fera automatiquement lorsque je créerai un lien hypertexte ?
Oui.
Question @JMC : avez-vous testé mon fichier ?
 

JMC

XLDnaute Junior
Encore merci.
J'ai téléchargé un problème poser justement à ce qui correspond à ma demande. Je te le mets en pièce jointe.
Dans son fichier, il clique sur le lien hypertexte en "feuille 1" qui l'envoie sur le "bilan" qui est surligné en rouge. Il revient sur sa "feuille 1", clique sur un autre lien qui l'envoie à nouveau sur le "bilan" et la 1ere cellule a repris sa couleur d'origine, alors que la 2eme est devenue rouge. Par contre la cellule reste rouge jusqu'à une nouvelle demande (ca encore, ce n'est pas bien grave)
Pas facile a gérer je m'en doute.
 

Pièces jointes

  • EXEMPLE (1).xlsm
    23.4 KB · Affichages: 0

crocrocro

XLDnaute Impliqué
En oj un fichier correspondant à mon hypothèse précédente avec
le code d'un module
VB:
Sub ActualiserCouleur(pFeuilleLien As String, pCellulelien As String)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets(pFeuilleLien).Range("A6", Sheets(pFeuilleLien).Range("A6").SpecialCells(xlLastCell)).Interior.ColorIndex = xlColorIndexNone
    If Sheets(pFeuilleLien).Range(pCellulelien).Row >= 6 Then Sheets(pFeuilleLien).Range(pCellulelien).Interior.Color = vbYellow
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
Le code de chaque feuille mensuelle
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActualiserCouleur ActiveSheet.Name, Target.Address
End Sub
 

Pièces jointes

  • Fichier Comptable UNC 2025 pour essai au 15.10.24.xlsm
    92.1 KB · Affichages: 3

TooFatBoy

XLDnaute Barbatruc
@TooFatBoy : Je ne suis pas de mauvaise humeur
Ah, c'est cool. Donc en fait aucun de nous quatre n'est vraiment de mauvaise humeur et tout va bien.


Je vous prie de m'excuser si mes propos ont vexés certains. Je suis débutant dans ce magnifique outils qu'est excel. Mais nous avons tous débuter au bas de l'échelle un jour ou l'autre.
Effectivement on en est tous passé par-là et moi-même, bien qu'utilisant Excel depuis plusieurs années, je suis toujours
"débutant" car je n'utilise que les deux ou trois fonctions que je connais, donc je découvre tous les jours des choses nouvelles pour moi en parcourant le forum.

Il n'y a pas qu'en Excel qu'il faut débuter : quand on arrive sur un forum, il est impossible d'en connaître immédiatement les us et coutumes de celui-ci, et t'inquiète on le comprends tous parfaitement.

Ici les coutumes sont : un bonjour au début de chaque message, fournir un petit Classeur Anonymisé et Représentatif, héberger ledit classeur sur le forum, pas de cross-posting (poser la même question sur un autre forum), et je crois que c'est tout.


Ben tu vois, quelqu'un a répondu à ton appel.
Bienvenue sur le forum.
 

JMC

XLDnaute Junior
Merci à toi.
 

TooFatBoy

XLDnaute Barbatruc
Ma demande est simple. Tout est dans le titre "Coloriser et décoloriser une cellule activée par un lien hypertexte"
Si c'était si simple et si tout était dans le titre, on n'aurait pas besoin que tu nous expliques ce que tu veux réellement.


Autrement dit, il s'agit dans ton exemple de cliquer sur la cellule se trouvant à l'intersection de la ligne du mois de janvier et de la colonne "Cotisations Adhérents(es)", dans la feuille "Journal Général".
Et cela doit t'afficher la feuille du mois de janvier, en mettre couleur la colonne "Cotisations Adhérents(es)".
Donc c'est en fait la colonne ciblée qu'il faut colorier. C'est bien ça ?

Tu veux colorier quoi : la cellule cible, toute la colonne du tableau cible, seulement l'en-tête du tableau cible ?


Tu as vraiment des données jusqu'en EK48 dans toutes tes feuilles ?
 

JMC

XLDnaute Junior
Non pas jusqu'à EK48
Je vais refaire le fichier et le remettre.
Pour ma demande la cellule cible.
Question qui n'a rien a voir (ou presque) pour ne pas finir à moitié couillons (l'autre moitié est déjà atteinte ) comment faire tout ce VBA. Comment cela fonctionne ? Où puis je me renseigner et apprendre ? Si tu as un site ou autre... Car je suppose que chaque fichier est unique, et que le VBA d'un tableau ne peut pas servir à un autre tableau
Merci d'avance
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…