Shape+couleur

Bonsoir le forum

Jaimerai que lorsque je clique sur la shape rectangle la cellule "F1" ait un remplissage en rouge.

quand je clique sur la shape cercle la cellule "F2" ait un remplissage en vert et celui de la cellule "F1" redevienne sans remplissage.

Merci.

Bonjour toutes et tous,

@ tester ci-joint

crdlt,

André

ok André13

Mais si j'ai X shapes,je dois recopier tout le code à chaque fois.

Il n'y à pas quelque chose de plus rapide.

Merci.

Re,

tu as raison, il doit y avoir une façon plus simple et plus adéquates dans ce cas là

un pro d'Excel, te trouveras sans doute un code plus efficace (merci d'avance)

crdlt,

André

Bonjour à tous,

Ici une proposition. Toutes les formes sont liées à la même procédure "Sub Clic()"

Le principe est simple, on récupère le nom de la forme et selon les cas on colore ou non les cases F1 ou F2

Sub Clic()
    With Sheets("Feuil1")
        Select Case Left(Application.Caller, 4)
            Case "Rect"
                .Range("F1").Interior.Color = RGB(256, 0, 0)
            Case "Elli"
                .Range("F1").Interior.Color = xlNone
                .Range("F2").Interior.Color = RGB(0, 256, 0)
            Case "Tria"
                .Range("F1").Interior.Color = xlNone
                .Range("F2").Interior.Color = xlNone
        End Select
    End With
End Sub

J'ai ajouté un triangle pour remettre les cellules sans couleur

Pierre

Après réflexion, je propose une variante. Si tu souhaites multiplier les formes c'est peut être qu'il faut agir sur des cellules différentes.

Ici on récupère aussi la colonne du coin sup gauche de la forme pour agir sur la colonne +2

Sub Clic()
Dim cl As Integer

    With Sheets("Feuil1")
        cl = .Shapes(Application.Caller).TopLeftCell.Column
        Select Case Left(Application.Caller, 4)
            Case "Rect"
                .Cells(1, cl + 2).Interior.Color = RGB(256, 0, 0)
            Case "Elli"
                .Cells(1, cl + 2).Interior.Color = xlNone
                .Cells(2, cl + 2).Interior.Color = RGB(0, 256, 0)
            Case "Tria"
                .Cells(1, cl + 2).Interior.Color = xlNone
                .Cells(2, cl + 2).Interior.Color = xlNone
        End Select
    End With
End Sub

On peut aussi récupérer la ligne si besoin :

lg= .Shapes(Application.Caller).TopLeftCell.Row

Pierre

Ok

merci pierrep56,c'est nickel.

Rechercher des sujets similaires à "shape couleur"