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 :

Fonction qui change la couleur du fond de la cellule si la valeur de celle-ci est différente d'un quota donné [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut Fonction qui change la couleur du fond de la cellule si la valeur de celle-ci est différente d'un quota donné
    Bonsoir, je travaille sur une fonction qui change la couleur du fond de la cellule en fonction du jour de la semaine par rapport à une date et un quota à respecter. Si la valeur de la cellule est différent du quota le fond de la cellule devient rouge.

    Le problème c'est que je n'arrive pas à changer le fond de la cellule mais seulement la police avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Font.ColorIndex = 3
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Interior.ColorIndex = 3
    cela me met #VALEUR! ds la cellule

    Plage = Cellule avec la date
    Nombre = Valeur de la cellule
    Quota =
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Option Explicit
     
    Function JourDate(Plage As Range, Nombre As String)
        Application.Volatile True
        'numéro de jour
        Dim numerojour As Date
        Dim nj As String
        numerojour = Plage
        nj = Format(numerojour, "DDDD")
        If nj = "lundi" Then
         If Nombre <> "2" Then 'Quota
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "mardi" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "mercredi" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "jeudi" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "vendredi" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "samedi" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        ElseIf nj = "dimanche" Then
         If Nombre <> "2" Then
          JourDate = Nombre
          Selection.Font.ColorIndex = 3
          Else
          JourDate = Nombre
          Selection.Font.ColorIndex = 1
         End If
        End If
     
    End Function
    Merci de votre aide

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    et si tu remplaces "Selection" par la cellule concernée, exemple pour A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("toto").Range("A1").Interior.Colorindex = 1
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    il y aurait il un moyen d'extraire la cellule dans laquelle est la fonction ?

    genre :

    JourDate(aujourdhui();2;celluleoùestcettefonction)

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Le plus simple ne serait-il pas d'utiliser la mise en forme conditionnelle?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    J'ai pensé à ça mais par rapport à ce que je veux faire ça fonctionnera pas car je dois appliquer les MFC sur tous les jours de l'année par rapport à 10 codes horaires de travail en fonction des week end, jours fériés etc..., et faudra modifier tous les ans les MFC :s

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je doute qu'il n'y ait pas moyen par MFC... Cela dépend de la conception du classeur. Tu peux mettre des formules conditionnelles dans tes MFC, ce qui rend celles-ci particulièrement puissantes, notamment pour des MFC agissant sur des cellules en fonction de valeurs d'autres cellules.

    Dans ma signature, tu trouveras un lien vers une vidéo qui expose la façon de travailler avec des formules dans des MFC, sur des feuilles différentes.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. [XL-2003] Fonction qui change la couleur d'une cellule
    Par cailloup dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 13/08/2011, 16h38
  2. Lien qui change de couleur
    Par stan30160 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/02/2007, 14h57
  3. Fonction qui change une variable
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2006, 13h54
  4. [DW2] image réactive qui change de couleur
    Par gysou dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 07/01/2006, 11h49

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