Surbrillance

Bonjour

Dans un tableau de noms, je voudrais uniquement voir la position des mêmes noms dans les autres colonnes en les mettant en surbrillance, une macro me conviendrait pour une utilisation ultérieure.

J'ai cherché un sujet identique dans ce forum sans succès, les recherches de doublons ou triples ne m'intéressent que si je peux le faire nom par nom.

Merci

Bonjour,

Un essai à coller dans le module de la feuille concernée:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [C5:C18]) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    Set plg = Union([G5:G18], [I5:I18], [K5:K18])
    If Target.Interior.ColorIndex = xlNone Then
        [C5:C18].Interior.ColorIndex = xlNone
        plg.Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 12
        For Each c In plg
            If c = Target Then c.Interior.ColorIndex = 12
        Next c
    Else
        Target.Interior.ColorIndex = xlNone
        plg.Interior.ColorIndex = xlNone
    End If
    Target.Offset(0, 1).Activate
End If
End Sub

Bonjour

Merci de la réponse rapide.

Comme je ne connais rien en VBA, je ne sais comment mettre en module et ensuite quelle action à faire sur ma feuille.

Je sais juste faire une macro par enregistrement d'Excel.

Cordialement

Re,

je ne sais comment mettre en module

Comme tu demandais une macro, j'ai considéré que tu saurais ...

Le plus simple: clic droit sur l'onglet de ta feuille (Feuil1, dans ton exemple) > Visualiser le code ... et coller ledit code dans la nouvelle fenêtre qui s'ouvre.

Le code se déclenchera à chaque sélection d'une cellule de la plage C5 à C18

Attention: j'ai modifié un tout petit peu le code de mon premier message, pour gérer le cas où on cliquerait successivement sur 2 noms, sans annuler préalablement les couleurs appliquées aux noms précédents

Bonjour U.Milité

Superbe, c'est exactement ce que je voulais, c'est à dire voir leur position dans l'ensemble du tableau.

Merci beaucoup

Cordialement

Bonjour

La surbrillance de la cellule choisie de la colonne D, se déclare bien en colonne I et N.

Je désirerais avoir aussi cette même surbrillance par paire de cellules de la colonne D (exemple D4 et D5, ou D6 et D7, ...)

4classeur1.xlsm (34.38 Ko)

Bonjour,

Quand tu veux marquer un sujet comme "résolu", il ne faut pas ajouter le Smiley avec sa pancarte, comme tu l'as fait mais cliquer sur le bouton qui doit figurer dans chacun des messages de ta discussion. Ceci étant, ça ne changera pas la face du monde

Tu as oublié d'apporter une modification au code proposé: j'avais indiqué que le code de mon premier message avait été adapté pour éviter que toutes les cellules sélectionnées dans la colonne de référence restent colorées. Comme ta colonne "cible" est devenue la colonne D, il faut aussi remplacer les 'C' par des 'D' dans la ligne [C5:C35].Interior.ColorIndex = xlNone

Pour ta nouvelle demande, tu peux expliciter un peu ce que tu souhaites? En colonne D, ce qui est renseigné, ce sont des équipes ? Tu voudrais que les deux équipes renseignées pour un même "JEU" soient colorées dans les colonnes I, N et S ? C'est bien ça? Couleur identique pour les deux équipes ou couleurs différentes ?

Bonsoir,

J'ai été tellement content de la solution de ma requête que j'ai mis Résolu.

C'est OK, j'ai rectifié le code, je n'y avait pas pensé car cela marchait.

Mais après utilisation sur un nombre d'équipes supérieur, je me suis dit que 2 cellules saisies conjointement faciliterait encore plus la rapidité de la vérification en visuel des équipes, et cela afin d'éviter l'utilisation du même jeu pour ces équipes et aussi de doublon contre le même adversaire, et donc me permettrait des inversions manuelles facile d'équipe.

Oui, la colonne D correspond aux équipes

Oui, je désire que les 2 équipes du même jeu soient colorées sur colonnes I, N et S

Oui, si possible pour la différente couleur de la 2ème équipe

Cordialement

Bonsoir,

On peut sans doute optimiser le code, mais tu testeras et tu nous diras si c'est utile.

J'ai joint le fichier, puisque je t'ai mis, dans la Feuil1, les différentes valeurs des ColorIndex (de 1 à 56, avec la couleur associée). Tu pourras, de cette manière, les modifier dans le code, si tu le souhaites.

Salut,

Je te propose une solution sans macro avec un tableau dans lequel il te suffit de saisir un "x" pour que le nom se mette en surbrillance dans le tableau des équipes.

C'est une gestion des mises en forme conditionnelle. Si tu veux changer la couleur, il te suffit d'éditer la règle et sélectionner la couleur.

Charles

Bonsoir U. Milité et Charles Exceller

Tout d'abord, merci du travail que vous avez effectué et le temps consacré à mon projet.

Charles Exceller : ton tableau est intéressant, il ne correspond pas à ce que j'ai besoin. Toutefois, je le garde pour une utilisation ultérieure

U. Milité : je suis sidéré par la rapidité de modification du code, je ne pensais pas au départ qu'il était possible de faire des couleurs multiples

Tu as simplement réalisé ce dont j'ai besoin, tous mes tests sont concluant : je gagne un temps énorme grâce cette double surbrillance.

Pour les curieux, je joins mon travail final.

Encore merci

Cordialement

Bonjour vincent115, Charles Exceller,

Juste au cas où, on peut raccourcir le code de quelques lignes (et son exécution, sans doute, de quelques fractions de secondes). C'est juste parce que je l'avais évoqué hier, que j'y ai jeté un œil neuf (à défaut d'être frais ):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [D4:D35]) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    Set cible = IIf(Target.Row Mod 2, Target.Offset(-1, 0), Target)
    Set plg = Union([I4:I35], [N4:N35], [S4:S35])
    If cible.Interior.ColorIndex = xlNone Then
        equ1 = cible.Value
        equ2 = cible.Offset(1, 0).Value
        [D4:D35].Interior.ColorIndex = xlNone
        plg.Interior.ColorIndex = xlNone
        cible.Interior.ColorIndex = 37
        cible.Offset(1, 0).Interior.ColorIndex = 44
        For Each c In plg
            If c = equ1 Then c.Interior.ColorIndex = 37
            If c = equ2 Then c.Interior.ColorIndex = 44
        Next c
    Else
        cible.Resize(2, 1).Interior.ColorIndex = xlNone
        plg.Interior.ColorIndex = xlNone
    End If
    Target.Offset(0, 1).Activate
End If
End Sub

Re bonjour U. Milité

Merci pour ce bonus, je vais l'installer et l'utiliser, mais sans chronomètre !

Cdlt

Rechercher des sujets similaires à "surbrillance"