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 :

Calcul couleur et chiffre


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Calcul couleur et chiffre
    Bonjour,
    Pouvez-vous m'aider svp.
    Je souhaite calculer le nombre de couleur sur un champ + le chiffre indiqué dans le champ.
    Ex : sur une même ligne
    CP = couleur bleu
    RTT = couleur rouge
    Le 07/12 le salarié prend un CP, mais il s’agit d’une demie journée donc on indique dans la colonne 0,5 avec la couleur bleu
    Je souhaite que la formule fasse la somme des CP (couleur bleu) en prenant en compte le chiffre une journée (1) ou une demi-journée (0,5).

    En pièce jointe un copie écran de mon tableau.

    Actuellement voici le code que j'ai :
    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
    Function NbColor(ByRef Plage As Range, Couleur As Byte) As Long
        Dim c As Range
        Dim nb As Long
        nb = 0
        For Each c In Plage
            If c.Interior.ColorIndex = Couleur Then
                nb = nb + 1
            End If
        Next c
        NbColor = nb
    End Function
     
    Function NbColorSameAs(ByRef Plage As Range, ByRef Cellule As Range) As Long
        NbColorSameAs = NbColor(Plage, Cellule.Interior.ColorIndex)
    End Function
     
    Function NbColorText(ByRef Plage As Range, ByRef Couleur As Byte, text As String) As Long
        Dim c As Range
        Dim nb As Long
        nb = 0
        For Each c In Plage
            If c.Interior.ColorIndex = Couleur And c.Value = text Then
                nb = nb + 1
            End If
        Next c
        NbColorText = nb
    End Function
     
    Function NbColorAndTextSameAs(ByRef Plage As Range, ByRef Cellule As Range) As Long
        NbColorAndTextSameAs = NbColorText(Plage, Cellule.Interior.ColorIndex, Cellule.Value)
    End Function
    Merci pour votre aide.
    Bonne journée.
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 364
    Points : 630
    Points
    630
    Par défaut
    Bonjour

    Je n'ai pas tout compris
    J'ai essayé comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function SommeSiCouleur(Plage As Range, Couleur As Range) As Currency
    Application.Volatile True
    Dim wCell As Range
    NumeroDeCouleur = Couleur.Interior.Color
    For Each wCell In Plage
    If wCell.Interior.Color = NumeroDeCouleur Then
    SommeSiCouleur = SommeSiCouleur + wCell.Value
    End If
    Next
    End Function
    PS : une variable long est un nombre entier

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup a_diard, c'est parfait :-)

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

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