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 :

Activer une sub sur le changement d'une valeur de cellule [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Activer une sub sur le changement d'une valeur de cellule
    Bonjour,

    J'aimerais savoir comment activer une SUB automatiquement sans l'aide de bouton. Je voudrais que ma SUB s'active ou procède à sa programmation sur un changement de valeur d'une cellule. Je pourrais utiliser le format conditionnel, mais je suis limité à 3 conditions. J'ai au moins 12 conditions à utiliser.

    Ex. si j'ai oui dans la cellule a1, je veux que celle-ci se colore en rouge
    si j'ai non dans la cellule a1, je veux que celle-ci se colore en orange et ainsi de suite pour une douzaine de conditions

    Merci à l'avance

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    En utilisant l'évènement Change de la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = "$A$1" And Target.Count = 1 Then
     
        Select Case Target.Value
            Case "oui"
                Target.Interior.ColorIndex = 3
            Case "non"
                Target.Interior.ColorIndex = 46
        End Select
     
    End If
     
    End Sub
    Jérôme

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut ?? If Target.Address = "$A$1" And Target.Count = 1 Then
    Merci pour tes codes Jfontaine. Je vais profiter encore de ta patience. Je suis quand même néophite en la matière et j'aimerais comprendre la ligne suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Address = "$A$1" And Target.Count = 1 Then
    Que veut dire And Targert.Count = 1 then. Je peux me débrouiller avec la balance du code, mais cette ligne m'embête un peu.

    Merci

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Que veut dire And Targert.Count = 1 then.
    Cela permet de vérifier que target ne contient qu'une seule cellule.
    Ce test gère le vidage en masse de cellule
    Jérôme

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    D'accord merci beaucoup

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir à tous
    Une petite remarque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Address = "$A$1" And Target.Count = 1 Then
    On pourrait s'en passer de du moment que si Target.address="$A$1", nécessairement Target.count=1
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. Changer le nom d'une table sur SQL server avec une requete
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 01/02/2014, 23h35
  2. [c#] Mettre à jour une propriété sur le changement d'une autre propriété
    Par yonpo dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/08/2011, 18h51
  3. Réponses: 6
    Dernier message: 03/12/2010, 10h12
  4. [WCF] notification sur le changement d'une propriété.
    Par maa dans le forum Windows Communication Foundation
    Réponses: 6
    Dernier message: 23/03/2008, 11h19
  5. Lancer une procédure sur un changement de liste
    Par Many31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2008, 19h42

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