IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gerer une cellule contenant une formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut Gerer une cellule contenant une formule
    Bjr,

    J'ai un code pour declencher une alerte quand une cellule est rouge mais la cellule contient une formule et est soumise à un format conditionnel.Donc mon code ne foctionne pas peut-on contourner?

    mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim mess As String
     
    If Target.Address = "$J$1" Then
       If Range("J1").Interior.ColorIndex = 3 Then
       MsgBox "ATTENTION"
          'mess = InputBox("ATTENTION!")
     
       End If
    End If
    End Sub
    la cellule contient "=NB.SI(Q6:Q45;"=t")"
    et devient rouge si < à10
    Cdt

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Je ne comprend pas bien l'utilisation de Worksheet_Change au vue de tes explications

    Est ce cela que tu souhaites => Si J1 < 10 alors message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Calculate()
     
    If Range("J1").Value < 10 Then
        MsgBox "ATTENTION"
    End If
     
    End Sub

  3. #3
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,
    Oui si la cellule est inf à 10 ou si elle est rouge:
    le pb c'est qu'elle change de valeur par une formule et de couleur par format conditionnel donc ma macro ne fonctionne pas
    Cdt

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Dans ce cas utilise ce code (Evenement Calculate de la feuille)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Calculate()
     
    If Range("J1").Value < 10 and Range("J1").Interior.Colorindex=3 Then
        MsgBox "ATTENTION"
    End If
     
    End Sub

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oui à priori tu cumule 2 problèmes :

    - Tu ne peu pas tester directement la couleur d'une cellule modifiée par une MFC
    - La fonction événementielle Worksheet_change, n'est pas déclenchée par les résultats d'une formule

    et donc une solution , tu détecte un changement dans une des cellules "sources" de ta formule" et tu contrôle directement la valeur dans ta "cellule formule" ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, Me.Range("Q6:Q45")) Is Nothing Then
        If Me.Range("J1") < 10 Then
            MsgBox "Attention"
        End If
     End If
    End Sub

  6. #6
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,
    Merci Bbil pour cette explication.
    Cdt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo