Formatage de 2 cellules en fonction de la sélection d'une cellule.

chris34

XLDnaute Junior
Bonjour le forum

J'ai trouvé beaucoup de sujets sur le formatage de cellules en fonction d'une valeur, d'une couleur, d'un format. Mais dans le cas présent j'aurais voulu formater 2 cellules en fonction de la sélection d'une cellule et là j'ai rien trouvé.

Par exemple dans la pièce jointe si je clique sur le bouton 2 à la fin de la macro la cellule A5 est sélectionnée.
Comment faire alors pour que les cellules A5 et C5 passe en fond rouge et police en blanc.

Et bien sûr si je clique sur le bouton 3, les cellules A5 et C5 redeviendraient normales et ce sont les cellules A6 et C6 qui passeraient en rouge.

Merci.

chris34
 

Pièces jointes

  • format2cell.xlsm
    42.4 KB · Affichages: 67
G

Guest

Guest
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Re,

Les lignes de codes qui se trouvent dans l'évènement Worksheet_FollowHyperlink auraient très bien pu se placer dans l'évènement Worksheet_SelectionChange en testant son paramètre Target.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If  Intersect(Target(1), Range("A4:A10")) Is Nothing Then
        Application.Names.Add "laLigne", "=" & Target(1).Row
    End If
End Sub

Mais, à mon sens Worksheet_FollowHyperlink est plus dans la logique du truc, ne serait-ce que parcequ'il n'est appelé QUE sur lien hypertext alors que SelectionChange est appelé au moindre changement de sélection.

Bonne soirée à tous
A+
 

chris34

XLDnaute Junior
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Bonjour

Merci Hasco pour toutes ces précisions, je retiens donc que c'est bien ton code précédent qui est le plus adapté.
--------------------​

Alors une dernière question sur ce sujet (enfin j'espère).

Voulant adapter le code de Hasco sur un de mes fichiers d'essai (même configuration), j'ai fait un copier/coller de celui-ci dans la feuille concernée.

Après avoir appliqué une MFC aux cellules concernées (merci st007), je pensais qu'il n'y avait plus qu'à essayer.

Je signale qu'il y avait bien un terme dans le code qui me tracassait à savoir "laLigne" mais constatant que celui-ci était pris en compte dans la formule de la MFC (voir image ci-dessous), je me suis dit que ça devrait aller.

gestionNom1.jpg

J'ai donc adapté ce code à la plage concernée et j'ai changé la couleur de fond pour bien différencier mon exemple.

gestionNom2.jpg

Pour être complet, la plage concernée ici ressemble à ceci :

gestionNom3.jpg

Après essai, bien sûr ça n'a pas marché (c'est vrai que sinon ce n'est pas marrant) :confused:

Après pas mal de recherches j'ai trouvé que ce terme "laLigne" apparaissait également dans le Gestionnaire de noms sous cette forme (voir image) si je me trouve en A4 après avoir cliqué sur le bouton 1.

gestionNom4.jpg

Puis si je clique sur le bouton 2 alors cette même fenêtre affiche un 5 dans la colonne Valeur et =5 dans la colonne étendue.

Et c'est là que je coince car j'ai bien essayé de reproduire cela en créant un Nouveau Nom que j'ai appelé laLigne puis en mettant comme Référence =LIGNE() mais cela m'a mis toutes mes cellules avec un fond vert.

J'ai bien essayé plein d'autres manips mais sans résultat. J'ai même essayé la formule matricielle mais pas mieux.

Alors la question est : Comment faire pour obtenir ce résultat dans le Gestionnaire de noms ???

Et si comme dans mon exemple, il y a plusieurs feuilles soit 5 comme Visuel (avec Visuel1, Visuel2, etc…) faut-il mettre le code dans chaque Feuille ou peut-on le mettre dans ThisWorkbook (ou encore ailleurs).

Encore une fois merci à tous pour votre participation :)

chris
 

Pièces jointes

  • gestionNom2.jpg
    gestionNom2.jpg
    34.7 KB · Affichages: 50
  • gestionNom2.jpg
    gestionNom2.jpg
    34.7 KB · Affichages: 52

st007

XLDnaute Barbatruc
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Bonjour,
Tu as forcément modifié
Range("A4:A10") par Range("A13:A32")
et tes liens hypertexte font référence aux cellules à partir de A13
 

Pièces jointes

  • h_Chris34bis (1).xlsm
    33.7 KB · Affichages: 35
Dernière édition:

chris34

XLDnaute Junior
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Re et bonjour st007

Je n'ai plus de notification par mail alors j'ai un peu de retard à l'allumage :(

Et oui comme tu le dis, j'ai bien effectué les 2 modifications d'ailleurs voici des imprim-écrans qui l'attestent.

r1.jpg

r2.jpg

C'est plutôt du côté du Gestionnaire de noms que je rencontre un problème. En effet je n'arrive pas à reproduire cette fenêtre lorsque j'ai cliqué sur le bouton 1 et que la cellule A13 est sélectionnée soit ceci :

r3.jpg
 
G

Guest

Guest
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Bonjour,

Oui il faut créer un lien hypertexte sur toutes les cellules B13:B32 d'après l'image du post#17.

En ce qui concerne le nom il est automatiquement créer par la macro lorsque tu cliques sur un de ces liens, par la ligne ci-dessous. Tu n'as donc pas à y toucher.
Code:
Application.Names.Add "laLigne", "=" & ActiveCell.Row

Pour résumer, Crée tes liens, change l'adresse des cellules dans la macro
Ou Mieux:

Sélectionne tes Cellules B13:B32, nomme cette zone par les gestionnaire de noms ou par la zone de texte à gauche de la barre de formules. Par exemple 'MesCellules'

Et dans la macro mets ce nom à la place de l'adresse de la plage:

Code:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Not Intersect(ActiveCell, Range("MesCellules")) Is Nothing Then
Application.Names.Add "laLigne", "=" & ActiveCell.Row
End If
End Sub

En Faisant comme ceci, ta plage B13:B32 pour évoluer, déménager etc.

A+
Bonjour st007:)
 

chris34

XLDnaute Junior
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Et non, je viens de faire les 4 premiers et voilà ce que cela donne :

r4.jpg


EDIT 13H32 : HOULA je viens juste de voir ton message Hasco. Bon je vais essayer de voir ça tranquillement.
 
Dernière édition:
G

Guest

Guest
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Re,

Reprenons, sur ton premier fichier tu avais mis des shapes sur les cellules de la colonne B sur lesquels tu cliquais pour sélectionner la cellule de la colonne A correspondante. Ces shapes, je les ai remplacés par des lien hypertextes. Donc c'est sur la colonne B que tu dois créer ces liens. Ces liens peuvent renvoyer à des cellules de la colonne A ou sur elles-même.

A+
 

chris34

XLDnaute Junior
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Vraiment désolé mais non ça ne marche pas car mes cellules restent avec leur fond blancs.

Pourtant j'ai bien le code qui est présent dans la feuille à traiter. Dans celui-ci j'ai bien remplacé la plage "A13:A32" par "MesCellules"

J'ai la mise en forme conditionnelle qui affiche cette fenêtre.
gestionNom2.jpg

J'ai bien créé le nom "MesCellules" pour la plage B13:B32 comme vous pouvez le voir ici :
r5.jpg

Je dois bien me faire des nœuds quelque part mais où ?


EDIT : Je viens juste de voir ton post ci-dessus.
 

Pièces jointes

  • gestionNom2.jpg
    gestionNom2.jpg
    34.7 KB · Affichages: 47
  • gestionNom2.jpg
    gestionNom2.jpg
    34.7 KB · Affichages: 47

chris34

XLDnaute Junior
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Reprenons, sur ton premier fichier tu avais mis des shapes

Effectivement j'avais fait ces boutons avec des formes rectangulaires.

Ces shapes, je les ai remplacés par des lien hypertextes.

Ah bon ?? et bien ça je l'avais pas vu.

Donc il faudrait que sur mon fichier exemple je modifie aussi ces boutons pour les remplacer également par des liens hypertextes. De plus ici sur mon exemple j'ai utilisé des Contrôles (Formulaires ou ActivX, me rappelle plus).

Bon alors là je crois que je vais en avoir pour un "petit" moment ou un certain temps :eek:

Je vous tiens au courant dès que c'est fait.

Merci.
 

st007

XLDnaute Barbatruc
Re : Formatage de 2 cellules en fonction de la sélection d'une cellule.

Bonjour Hasco,

Ma curiosité fait que ....

tu dis nommer la plage B13:B32 puis modifier le range dans la macro, parfait.
Mais les liens hypertexte doivent donc faire référence a eux-mêmes (colonne B) et plus sur la colonne A

Bref, le fichier réel de Chris se verra allégé de boutons au profit de liens hypertextes
 

Discussions similaires

Réponses
26
Affichages
443