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 :

Faire reference à une variable plutot qu'une cellule dans une comparaison


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut Faire reference à une variable plutot qu'une cellule dans une comparaison
    bonjour,
    cette fois ci je vais essayer d'être clair, mais ma question est plus facile à exprimer

    par macro je veux affecter une comparaison à une cellule dont la valeur de comparaison va dépendre d'une autre cellule
    mais je voudrais qu'elle dépende la valeur d'une variable

    par enregistrement j'obtiens la macro de base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
    ' la comparaison se fait en réference à la valeur d'une cellule
     
        Range("H9").Select
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:="=$H$12"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 49407
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = True
     
        Range("H9").Select
        ActiveCell.FormulaR1C1 = "100"
        Range("H9").Select
        ActiveCell.FormulaR1C1 = "1"
        Range("H9").Select
        ActiveCell.FormulaR1C1 = "5"
        Range("H10").Select
    End Sub
    en fait je voudrais remplacer =$H$12" par une variable

    j' ai essayé le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub comparamo()
    valeur = Range("H12")
      Range("H9").Select
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:=valeur
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 49407
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = True
    End Sub
    ça plante pas à la compil mais ça ne fait rien
    quelqu'un peut il m'indiquer la bonne syntaxe ?

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Effectivement, tu te trompe dans ton écriture : quand tu écris :

    Tu prend la valeur de la cellule. or pour fair eun formule,c 'est pas la valeur de la cellule qu'il faut mettre, mais la référence de la cellule.

    essaye un truc comme ça dans un premier temps :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub comparamo()
    valeur = "H12"
      Range("H9").Select
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:="=" & valeur
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 49407
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = True
    End Sub
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    en fait ce que je cherche est bien le contenu de la variable, dans mon exemple j'ai juste initialisé la variable.
    dans mon projet la valeur limite qui va déclencher la couleur de ma cellule est le résultat d'un calcul dont je vous passe les détails

    je voudrais donc savoir la syntaxe pour que la ligne
    Formula1:="=$H$12"
    avec une variable car je voudrais éviter l'écriture dans une cellule qui ne sert pas

    mais j'ai essayé :
    valeur = 100
    Formula1:="=" & valeur

    et là ça marche

    merci illight

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Problème résolu donc ?

    oublie pas le petit pouce vert, et le tag résolu
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/10/2014, 10h28
  2. Réponses: 3
    Dernier message: 01/06/2009, 18h21
  3. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  4. Copier le contenu d'une cellule dans une variable sous excel
    Par franckB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/04/2007, 19h54
  5. Réponses: 4
    Dernier message: 11/09/2006, 08h29

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