Macro sur feuille active

Bonjour à tous,

J'ai de nouveau un soucis avec cette macro calcul.

Je remercie André et VBMBHB.

Donc j'ai une macro sur une feuille, le soucis c'est que cette dernière agit sur mes autres feuilles.

C'est a dire ma macro doit choisir une image selon le résultat d'un calcul dans une case. Cela marche nikel sur la première page. Par contre sur mes autres pages la macro ne tient pas compte des résultats de la page elle affiche les mêmes images que sur la première page.

Voici le code :

Private Sub Worksheet_Calculate()
On Error Resume Next
        With ActiveSheet
            If [R9].Value < 0 Or [R9].Value > 1000 Then
                .Shapes("Jaune 1").Visible = True
                .Shapes("Rouge 1").Visible = True
                .Shapes("Vert 1").Visible = True
                Total(0) = 0
            ElseIf [R9].Value >= 0 And [R9].Value <= 90 Then
                .Shapes("Jaune 1").Visible = False
                .Shapes("Rouge 1").Visible = False
                .Shapes("Vert 1").Visible = True
                Total(0) = 3
            ElseIf [R9].Value > 90 And [R9].Value <= 110 Then
                .Shapes("Jaune 1").Visible = True
                .Shapes("Rouge 1").Visible = False
                .Shapes("Vert 1").Visible = False
                Total(0) = 2
            ElseIf [R9].Value > 110 And [R9].Value <= 1000 Then
                .Shapes("Jaune 1").Visible = False
                .Shapes("Rouge 1").Visible = True
                .Shapes("Vert 1").Visible = False
                Total(0) = 1
            End If

            If [R16].Value < 0 Or [R16].Value > 1000 Then
                .Shapes("Jaune 2").Visible = True
                .Shapes("Rouge 2").Visible = True
                .Shapes("Vert 2").Visible = True
                Total(1) = 0
            ElseIf [R16].Value >= 0 And [R16].Value <= 90 Then
                .Shapes("Jaune 2").Visible = False
                .Shapes("Rouge 2").Visible = False
                .Shapes("Vert 2").Visible = True
                Total(1) = 3
            ElseIf [R16].Value > 90 And [R16].Value <= 110 Then
                .Shapes("Jaune 2").Visible = True
                .Shapes("Rouge 2").Visible = False
                .Shapes("Vert 2").Visible = False
                Total(1) = 2
            ElseIf [R16].Value > 110 And [R16].Value <= 1000 Then
                .Shapes("Jaune 2").Visible = False
                .Shapes("Rouge 2").Visible = True
                .Shapes("Vert 2").Visible = False
                Total(1) = 1
            End If

            If Total(0) = 1 Or Total(1) = 1 Then
                .Shapes("JAUNE").Visible = False
                .Shapes("ROUGE").Visible = True
                .Shapes("VERT").Visible = False
            ElseIf Total(0) = 3 And Total(1) = 3 Then
                .Shapes("JAUNE").Visible = False
                .Shapes("ROUGE").Visible = False
                .Shapes("VERT").Visible = True
            ElseIf Total(0) = 2 Or Total(1) = 2 Then
                .Shapes("JAUNE").Visible = True
                .Shapes("ROUGE").Visible = False
                .Shapes("VERT").Visible = False
            Else
                .Shapes("JAUNE").Visible = True
                .Shapes("ROUGE").Visible = True
                .Shapes("VERT").Visible = True
            End If
        End With
End Sub

Je joins également un petit fichier exemple.

J'aimerai du coup savoir comment dupliquer le code sur chaque feuille et que cela fonctionne.

Bien cordialement,

6beug.xlsm (329.30 Ko)

Bonjour,

essaie avec :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

La procédure est à placer dans le ThisWorkbook.

Cdlt.

Bonjour, Salut Jean-Eric !

...Et en remplaçant ActiveSheet par Sh

et en mettant un point devant .[R9]

Cordialement.

Bonjour Jean-Eric et MFerrand,

Cela ne fonctionne pas j'ai bien essayer les deux éléments que vous me donner mais cela ne fonctionne pas on reste avec les images de la première page.

Bien cordialement,

Mika

voici un fichier complet pour voir ce qui se passe

6beug.xlsm (797.13 Ko)

Re,

Pas testé...

Cdlt.

7beug.xlsm (728.47 Ko)

Bonjour à tous,

Merci pour vos solution,

cependant cela ne fonctionne toujours pas il me met constamment un message d'erreur.

Bien cordialement,

Bonjour,

Tu peux peut-être nous communiquer le message d'erreur, et la ligne surlignée en jaune dans l'éditeur VBE.

Cdlt.

Bonjour,

oui effectivement je peux donner l'erreur

message :

erreur d'exécution '-2147024809 (80070057)' :

l'élément portant ce nom est introuvable

Ligne :

.shapes("Jaune 2").visible = false ligne 51

bien cordialement

bonjour,

Personne n'a de solution ?

Bonjour,

Ci-joint ton fichier test ...

En espérant que cela t'aide ...

8test-mika51-v2.xlsm (792.91 Ko)

Bonjour James 007,

Et merci bien pour le fichier,

Mais cela ne fonctionne pas. Bien cordialement,

Bonjour James 007,

Et merci bien pour le fichier,

Mais cela ne fonctionne pas. Bien cordialement,

Re,

Peux-tu préciser ce qui ne fonctionne pas ... ???

Oui je peux préciser

Par exemple sur la feuille préparation Mensuel

dans la case R9 la valeur calculée est de 150 donc on devrait avoir une image Rouge et sur le fichier c'est une image verte qui apparait.

Bien cordialement,

Re,

Malheureusement ... dans ton tableau qui commence en colonne T ... perso ... je n'ai que des #REF ...

Avant que la macro évènementielle ne puisse intervenir pour l'affichage, il faut s'assurer que les valeurs extraites des TCD sont toutes correctes ...

Re,

Effectivement il y a des REF car mon fichier complet est beaucoup trop lourd pour être mis ici.

Mais la récupération des valeurs ne se fait pas sur les cases marqué REF

Elle se fait sur les cases Résultats.

Et donc R9 et R16. Et les valeurs extraite des TCD sont correctes et se mettent a jours en fonction des valeurs du TCD.

Bien cordialement,

Re,

Pas de problème ... je peux supposer que R6 et R16 fonctionnent correctement ...

Est-ce-que tes règles Vert Jaune Rouge sont communes à toutes tes feuilles ???

Oui les règles sont les mêmes pour chaque page contenant le mot mensuel ( car il y a plein de pages sur mon fichier).

Petit vert si Valeur R9 est entre 0 et 90

Petit jaune si valeur R9 est entre 90 et 110

Petit rouge si valeur R9 est au dessus

Petit vert 1 si valeur R16 est entre 0 et 90

Petit jaune 1 si valeur R16 est entre 90 et 110

Petit rouge 1 si valeur R16 est au dessus

Grand vert si les deux petits sont vert

Grand jaune si les deux petits sont jaune ou si un des deux est jaune et l'autre vert

Grand rouge si au moins un des deux est rouge

Voici les règles

Et pour ce qui est du fonctionnement

Je récupère des valeur de TCD qui sont trié et évolue selon chaque mois

Et c'est valeur sont calculé dans un petit tableau une ligne résultat me sert a afficher la valeur dans la case R9 pour un type de résultat et R16 pour un second.

Et puis après afficher les images en fonction de ces résultats.

En espérant avoir été assez clair. Merci de ton aide.

Bien cordialement,

Re,

Ci-joint ton fichier ... sans macro évènementielle qui plante ... et un bouton pour Ajuster tes Shapes ...

En espérant que cela t'aide ...

6test-mika51-v3.xlsm (808.07 Ko)

Bonjour,

Une chose m'échappe... j'avais testé en son temps je ne sais plus quel classeur, avec la procédure modifiée selon les spécifications indiquées : dans ThisWorkbook, utilisation de Sh, point devant les références de cellules (je crois en avoir ajouté qui manquaient)... mais cela fonctionnait correctement et le sujet m'avait paru clos !

Cordialement.

Rechercher des sujets similaires à "macro feuille active"