Partager via

Manipulation sur plages avec évenement VBA "SelectionChange"

Anonyme
2022-09-18T14:49:12+00:00

Bonjour à tous,

À chaque changement de sélection d'une cellule, je souhaite sélectionner une plage de cellule partant de la cellule sélectionnée (ActiveCell) et étendue de 8 cellules vers la droite sur la même ligne (ça pas de souci). Ensuite je souhaite inscrire dans cette plage de 9 cellules le contenu d'une plage nommée ([sel_sal]), là encore pas de souci.

Ça se complique pour les couleurs : je voudrais que la première cellule (ActiveCell) soit colorée de la couleur RGB(x,x,x) et les 8 autres cellules à droite de la couleur RGB(y,y,y) et ça, je n'y arrive pas... je ne sais que colorier la plage entière !

Quelqu'un pourrait-il me donner un coup de main ?

Merci par avance ;o)

Domi

Ci dessous ce que j'ai su faire pour le moment :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Pas de declenchement de macro si on agit sur plusieurs cellules à la fois

    If Target.Cells.Count > 1 Then

        MsgBox "Sélectionnez une seule cellule !"

        Exit Sub

    End If

Range(ActiveCell, ActiveCell.Offset(0, 8)).Select

Selection.Value = [sel_sal]

'je coince à partir de là.... il me faudrait une couleur pour la première cellule et une autre pour les 8 suivantes à droite

Selection.Interior.Color = RGB(253, 216, 104)

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2022-09-18T15:16:33+00:00

Bonjour,

Essaie :

'cellule active

Target.Interior.Color = RGB(x, y, z)

'les 8 autres cellules

Target.Offset(, 1).Resize(, 8).Interior.Color = RGB(253, 216, 104)

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

2 réponses supplémentaires

  1. DanielCo 107.7K Points de réputation
    2022-09-18T16:13:22+00:00

    J'évite d'utiliser "activecell". Dans ce code, pas d'erreur possible, mais dans un évènement "worksheet change", il peut y avoir une différence entre "activecell" et "target" si l'option "décaler la sélection après validation" est cochée. Et ça peut fonctionner sur un ordi et pas sur l'autre. Je me suis fait prendre une fois...

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-09-18T16:03:15+00:00

    Merci Daniel,

    En effet en utilisant Target et Resize et un peu d'adpatation j'ai pu arriver à mes fins.

    Tes conseils sont toujours précieux !

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire