ordre pour 3 formes supperposées

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

al1000

XLDnaute Impliqué
Bonsoir,

1)j'ai 3 formes A1,A2,A3 supperposeés
en fonction du résultat de la cellule a1, j'ai une forme qui se met au premier plan

2)j'ai 3 formes B1,B2,B3 supperposeés
en fonction du résultat de la cellule a2, j'ai une forme qui se met au premier plan

3)j'ai 3 formes C1,C2,C3 supperposeés
en fonction du résultat de la cellule a3, j'ai une forme qui se met au premier plan

Problemes
j'ai 3 formes D1,D2,D3 supperposeés
Comment ecrire une macro pour:
si la forme en premier plan est A1;B2 et C3 alors je met en premier plan la forme D1
si la forme en premier plan est A1;B1 et C1 OU A3;B3; C3 alors je met en premier plan la forme D2


a+
 
Re : ordre pour 3 formes supperposées

bonsoir,

normal qu'elle ne marche pas cette macro!

pour commencer, sub et worksheet_change étaient collés d'où la ligne rouge
ensuite, cette macro était faite pour tester des modif des cellules A1, A2 et A3 (d'où le target.row et .colum). toi, tu veux la faire agir selon la valeur des cellules J6, H32 et D50
enfin, tes select case testent les valeurs 1 et 2 en oubliant le 3 pour les cellules J6, H32 et D50 qui sont vides.
pour finir, tu avais 2 formes "client jaune" sur la feuille

je te propose de modifier ta macro comme suit :

Code:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$6" Then
    Select Case Target.Value
        Case 1
        ActiveSheet.Shapes("client vert").ZOrder msoBringToFront
        Case 2
        ActiveSheet.Shapes("client jaune").ZOrder msoBringToFront
        Case 3
        ActiveSheet.Shapes("client rouge").ZOrder msoBringToFront
    End Select
End If
If Target.Address = "$H$32" Then
    Select Case Target.Value
        Case 1
        ActiveSheet.Shapes("prod vert").ZOrder msoBringToFront
        Case 2
        ActiveSheet.Shapes("prod jaune").ZOrder msoBringToFront
        Case 3
        ActiveSheet.Shapes("prod rouge").ZOrder msoBringToFront
    End Select
End If
If Target.Address = "$D$50" Then
    Select Case Target.Value
        Case 1
        ActiveSheet.Shapes("securite vert").ZOrder msoBringToFront
        Case 2
        ActiveSheet.Shapes("securite rouge").ZOrder msoBringToFront
    End Select
End If
VformesD = [J6] * 100 + [H32] * 10 + [D50]
If VformesD = 123 Then
    ActiveSheet.Shapes("perf vert").ZOrder msoBringToFront
Else
    If VformesD = 111 Or VformesD = 333 Then
        ActiveSheet.Shapes("perf jaune").ZOrder msoBringToFront
    Else
    ActiveSheet.Shapes("perf rouge").ZOrder msoBringToFront
    End If
End If
End Sub

A+
 
Re : ordre pour 3 formes supperposées

Bonjour,

c'est pour ça que ça ne marche pas.
les macro évènementielles sont à écrire derrière la feuille de calcul dont elles scrutent les évènements.
donc sur l'onglet de ta feuille tu fais un clic droit/visualiser le code et tu recopies la macro dans cette zone de code.

tu vires celle du module et ce sera bon

A+
 
Re : ordre pour 3 formes supperposées

bonsoir

j'ai copié dans le code de la feuille
et cela marche
plutôt que dire que ça ne marche pas, dis ce que tu fais de bout en bout et précise l'endroit où ça ne marche pas d'après toi

a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
345
wDog66
W
Réponses
3
Affichages
470
Réponses
2
Affichages
243
Réponses
10
Affichages
411
Retour