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

Journal général..png
Produit Janvier.png
 
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
J'ai bien fait de demander parce que, je ne sais pas pourquoi, mais moi j'aurais parié sur la colonne entière... 😅
produit-janvier-png.1205292



Le code VBA sort du cerveau du développeur, en l'occurrence Crocro.
Pour les sites, à part l'aide de Microsoft, là je ne vois pas. :(


@+
La Colonne aurait été bien également, mais le total dans, par exemple, cotisations adhérents sont dans #26 de chaque mois.
Merci pour tes réponses.
 

JMC

XLDnaute Junior
Bonjour le fil,
@JMC , vous ne dites pas si vous avez la solution attendue 🤔
N'oubliez pas quand vous aurez LA solution, de passer votre demande à résolue ;)
Bonjour désolé.
Problème en partie résolu. Le lien me renvoie bien sur la cellule demandée (par exemple cotisation) mais elle reste en jaune lorsque je clique sur un autre lien (par exemple sur journal pour le même mois ou un autre mois)
J'aurai voulu que la cellule de ma 1er demande de lien redevienne normale et que ce soit celle de ma 2eme demande qui se colore et ainsi de suite pour toutes les autres demande.
J'espère que je me suis bien expliqué.

J'ai mis un fichier joint à toofatboy, d'une demande qui avait été réglé pour la même chose. Je le remets dans ce message. On peut voir que lorsque on ferme le fichier et qu'on le réouvre, les cellules sont toutes normales, alors que lorsque j'enregistre les modifs de mon propre fichier et que je le réouvre, la cellule que j'avais vu reste colorée.
Merci
 

Pièces jointes

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

crocrocro

XLDnaute Impliqué
Problème en partie résolu. Le lien me renvoie bien sur la cellule demandée (par exemple cotisation) mais elle reste en jaune lorsque je clique sur un autre lien (par exemple sur journal pour le même mois ou un autre mois)
J'aurai voulu que la cellule de ma 1er demande de lien redevienne normale et que ce soit celle de ma 2eme demande qui se colore et ainsi de suite pour toutes les autres demande.
Bonjour le fil,
@JMC
avez-vous bien fait le test avec le fichier du post 26 ?
Le clic sur un lien d'un mois puis sur un autre lien du même mois produit la décolorisation de la cellule du 1er lien et la colorisation de la cellule du 2ème lien.
De même la (ou les) cellule(s) sélectionnée(s) d'un tableau (jan, fév ou mars) à partir de la ligne 6 sont colorisées en jaune.
En résumé : Sont colorisées en jaune, la (ou les) cellule(s) sélectionnée(s) d'un tableau.
Quand on sélectionne l'un ou l'autre des onglets, il y a forcément une ou plusieurs cellules sélectionnées, et don colorisées (si sélection à partir de la ligne 6.
Chose que je n'ai pas programmée : si je sélectionne un autre onglet, je décolorise les cellules
Et, dont voici le code complémentaire à mettre en place sur chaque feuille Mois
VB:
Private Sub Worksheet_Deactivate()
    SupprimerCouleur ActiveSheet.Name
End Sub
Et dans le module
Code:
Sub SupprimerCouleur(pFeuilleLien As String)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets(pFeuilleLien).Range("A6", Sheets(pFeuilleLien).Range("A6").SpecialCells(xlLastCell)).Interior.ColorIndex = xlColorIndexNone
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Pour ma demande la cellule cible.
Pardon de revenir encore sur ce point, mais d'après ce que je viens de voir dans le fichier de #15, la feuille JOURNAL GENERAL 2025 a une seule ligne pour chacun des mois de l'année.

Donc je suppose que la ligne d'un mois contient la somme des données de la feuille dudit mois pour chaque colonne.
Donc à une cellule de la feuille JOURNAL GENERAL 2025 correspond plusieurs cellules de la feuille du mois concerné. Et du coup tu ne peux pas cibler une seule et unique cellule.

C'est ça, ou je n'ai rien compris ?
 
Dernière édition:

JMC

XLDnaute Junior
Pardon de revenir encore sur ce point, mais d'après ce que je viens de voir dans le fichier de #15, la feuille JOURNAL GENERAL 2025 a une seule ligne pour chacun des mois de l'année.

Donc je suppose que la ligne d'un mois contient la somme des données de la feuille dudit mois pour chaque colonne.
Donc à une cellule de la feuille JOURNAL GENERAL 2025 correspond plusieurs cellules de la feuille du mois concerné. Et du coup tu ne peux pas cibler une seule et unique cellule.

C'est ou je n'ai rien compris ?
Bonsoir,
Je comprends ton doute. Je me suis mal exprimé dès le début. En y repensant, je vois ma grosse conn... euh pardon, ma bêtise.
Ce que je voulais exactement, mais là n'est pas trop le problème parce que dans le lien hypertexte je mets la cellule qui correspond au total pour chaque colonne.
Par exemple :
Journal Général : "Produit"
Mois de :
Janvier - Colonne J6 "Cotisations" correspond au total à la cellule J38 "Cotisation" du mois de janvier.
Février - Colonne K6 "Journal" corresponds au total de la cellule K38 "Journal" de février
Etc...pour tous les autres mois. Idem pour les charges.
Pas facile d'exprimer ses besoins je m'y suis perdu moi même à force 🤪
Je suis allé trop vite dans ma demande sans dire ce que je voulais exactement. Mais crocrocro a su deviner ce que j'attendais (et bravo à lui il doit en voir des complications le pauvre). Son dernier post me laisse dans le doute, je vais voir avec lui.
Cordialement
 

TooFatBoy

XLDnaute Barbatruc
Ce que je voulais exactement, mais là n'est pas trop le problème parce que dans le lien hypertexte je mets la cellule qui correspond au total pour chaque colonne.
Visiblement non : si c'était le cas ça renverrait vers la ligne "TOTAUX DU MOIS" et non dans le tableau.
Et c'est cette cellule dans le tableau qui est coloriée, et non celle des totaux de la colonne.

De plus, le lien des Fournitures de Bureau de février renvoie vers une cellule vide du tableau de février. ;)


Comment crées-tu les liens ?
 
Dernière édition:

job75

XLDnaute Barbatruc
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+
 

Pièces jointes

  • Fichier Comptable UNC 2025 pour essai au 15.10.24.xlsm
    69.3 KB · Affichages: 6

crocrocro

XLDnaute Impliqué
Bonjour le fil
@job75 :
Certaines demandes sont (paraissent ?) évidentes, c'est normalement le cas (pas toujours) pour le demandeur. Demandez à un escargot ou lézard s'il fait beau, on n'en tirera pas la même conclusion, il faut donc bien connaitre la personne à qui l'on pose la question.
De plus, quand on apporte une réponse, le demandeur peut rebondir, ah, ce serait bien si ... on rebondit aussi ... on pourrait appeler çà le syndrome du kangourou !
Bref, et il semblerait (je mets le conditionnel) que @JMC rebondisse encore...
PS pour le nombre de posts effectivement très important, une hypothèse : la pluie de ces derniers jours ?
-
 

TooFatBoy

XLDnaute Barbatruc
Certaines demandes sont (paraissent ?) évidentes, c'est normalement le cas (pas toujours) pour le demandeur.
Dans ce fil, c'est le cas.

Sa demande lui semble évidente, mais en réalité il suffit de lire la demande et de regarder les images fournies pour immédiatement se rendre compte que c'est tout sauf évident puisqu'il y a incohérence entre le texte et les images. 🙃

Du coup j'active mon neurone, et je constate que les liens hypertext ne pointent pas vers les bonnes cellules, en particulier un des liens qui pointe vers une cellule vide. Et alors, je fais le kangourou 😉, je rebondis en demandant comment sont fabriqués les liens.

J'avoue qu'il a dû m'arriver de faire aussi le petit cormoran et donc de répondre scrupuleusement à la question posée en sachant que ça répondait au texte de la question mais pas au visuel, et que ça allait donc entraîner une réponse expliquant mieux le problème à laquelle il faudrait répondre, etc.
 
Dernière édition:

JMC

XLDnaute Junior
Bonjour le fil,
@JMC
avez-vous bien fait le test avec le fichier du post 26 ?
Le clic sur un lien d'un mois puis sur un autre lien du même mois produit la décolorisation de la cellule du 1er lien et la colorisation de la cellule du 2ème lien.
De même la (ou les) cellule(s) sélectionnée(s) d'un tableau (jan, fév ou mars) à partir de la ligne 6 sont colorisées en jaune.
En résumé : Sont colorisées en jaune, la (ou les) cellule(s) sélectionnée(s) d'un tableau.
Quand on sélectionne l'un ou l'autre des onglets, il y a forcément une ou plusieurs cellules sélectionnées, et don colorisées (si sélection à partir de la ligne 6.
Chose que je n'ai pas programmée : si je sélectionne un autre onglet, je décolorise les cellules
Et, dont voici le code complémentaire à mettre en place sur chaque feuille Mois
VB:
Private Sub Worksheet_Deactivate()
    SupprimerCouleur ActiveSheet.Name
End Sub
Et dans le module
Code:
Sub SupprimerCouleur(pFeuilleLien As String)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets(pFeuilleLien).Range("A6", Sheets(pFeuilleLien).Range("A6").SpecialCells(xlLastCell)).Interior.ColorIndex = xlColorIndexNone
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
Bonsoir,
Petite demande d'explication.
Tes dernières programmations ("Et, dont voici le code complémentaire à mettre en place sur chaque feuille Mois"), dois je les rajouter à la suite de chaque mois ,et pour le module ("Et dans le module") pareil ? Ou dois je changer le codage pour chaque mois ainsi que pour le module ?
J'ai refais le fichier complet, avec tous les mois et toutes les colonnes avec les liens hypertexte dans le journal. DONC FAUT OUBLIER TOUS LES AUTRES FICHIERS.
Lorsque je clique sur la colonne, par exemple "Cotisations" du mois de janvier (ou dans les autres mois) cela me renvoie bien a la cellule demandée.
Possible que lorsque je clique sur autre cellule dans le même mois (ou ailleurs) la cellule colorisée redevienne à l'origine et que là où j'ai cliqué soit également d'origine ? Car actuellement là où je clique, la cellule devient jaune.
Je suis désolé de vous faire cogiter les neurones. J'aurai dû être plus explicite dès le début.
Cordialement
 

Pièces jointes

  • Finances association.xlsm
    177.2 KB · Affichages: 0

crocrocro

XLDnaute Impliqué
Je vais au plus simple : en pj le fichier complet qui contient toutes le code.
J'ai également mis en commentaire donc inactif le code de job75 qui comme très souvent, propose une solution très élégante. Correspond-elle à ton besoin ?
En attendant ton retour ...
 

Pièces jointes

  • Fichier Comptable UNC 2025 pour essai au 15.10.24.xlsm
    69 KB · Affichages: 1

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi