Macro sur feuille active

Bonjour,

j'ai un souci avec une macro j'aimerai qu'elle ne se lance que sur une seule feuille or elle se lance des qu'une feuille est ouverte

comment résoudre ce souci ?

voici le code :

Private Sub Worksheet_Calculate()
    Dim ROUGE As Boolean, ORANGE As Boolean, VERT As Boolean

        With ActiveSheet
            If [R9].Value < 0 Or [R9].Value > 500 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 <= 500 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 > 500 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 <= 500 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

VBmessageboxhelpbutton si tu passe par la merci de ton aide

bien cordialement,

Bonjour,

Avec une condition :

If activesheet.name = "blablabla" then
.
.
. TA MACRO
.
.
End if

Tu va te dire ... "OHHHHH j'aurais du y penser !"

Petite remarque, car je m'interroge ... à quel moment tes variables ORANGE, ROUGE et VERT sont-elles utilisées ou renseignées ?

Cdlt,

Bonjour,

effectivement j'aurai du y penser c'est tellement évident ...

Par contre

ma macro ne veut plus fonctionner

Par contre

ma macro ne veut plus fonctionner

Beh... euh j'y peu rien ... as tu bien défini la condition ? pas d'erreur de frappe dans le nom de la feuille ?

Cdlt,

Bonjour, avec ceci :

Private Sub Worksheet_Calculate()

Normalement le code n'est lancé que sur la feuille en question, c'est un code à placer sur la feuille voulue c'est à dire celle où se trouve les images... Si tel est le cas elle ne devrait pas être lancée sur le autre feuille

Pour ce qui est de :

Dim ROUGE As Boolean, ORANGE As Boolean, VERT As Boolean

En effet cela peut être supprimer, c'est un résidu de code "passés".

vbMBHB

Bonsoir a vous deux,

Je dois avoir un soucis car le code se lance sur les autres feuilles.

Je comprends pas pourquoi mais du coup a chaque autre feuille il me dit qu'il y a une erreur.

bien cordialement,

Bonjour,

je vous joins un bout de fichier

Bien cordialement,

10beug.xlsm (378.47 Ko)

Bonjour

voir ce que te proposes VbMsgBoxHelpButton hier à 17:53

pas l'idéal On error resume next , mais en attendant (le message s'affiche)

ci-joint

crdlt,

André

9beug1.xlsm (377.48 Ko)

Bonjour, avec un fichier je comprend mieux... En fait vous faites un copier/coller de la feuille pour en créer une deuxième... Il vous suffit de supprimer le code des feuilles où il ne faut pas qu'il tourne... En effet le code est "lié" à la feuille, si vous copiez coller la feuille pour en faire une nouvelle, alors le code est également copié... Clic droit sur le nom de l'onglet "Automoteur hebdo", affichez le code et supprimez le code qui s'affiche.

vbMBHB

Bonjour a tous ,

Merci de vos réponse

Effectivement le code d'andré marche bien.

Mais ce n'est pas un copier coller de feuille c'est 2 codes différents

Bien cordialement,

Oui pardon, je me suis emmêle les pédales... En fait l'erreur vient du fait que "refresh" cherche à rafraichir le tableaucroisédynamique15 et que celui-ci utilise les données du "tableau". Hors si vous allez dans le gestionnaires des noms, il y a bien un objet qui s'appelle "tableau" mais ses références ne sont pas bonnes ! Elles sont en #Ref ! Corrigez ceci et vous pourrez normalement enlever "la gestion d'erreur" qui malheureusement masque le fait que se tableau 15 ne sera jamais mis à jour et engendre une erreur d'interprétation sur votre feuille... A moins que ce "tableau" ne soit plus utile, du coup il vous suffit de supprimer le TCD15 qui à ce moment là n'a plus lieu d'être...

vbMBHB

Merci bien VbMBHB

Par contre j'observe un autre soucis avec le fichier rendu par André,

j'ai un soucis sur la seconde page ou il y a le code elle ne prend pas en compte les valeurs des cellules

En faite dans ma seconde page je n'ai pas les images en fonction des résultats.

Comment procéder ?

Bien cordialement,

Rechercher des sujets similaires à "macro feuille active"