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 :

Macro pour somme de cellules colorées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Par défaut Macro pour somme de cellules colorées
    Bonjour à tous,
    J'ai essayé de mettre en place une macro qui totalise les valeurs numériques de cellules colorées manuellement. La macro me répond toujours 0.
    Je remercie tous ceux qui pourrait m'aider pour résoudre ce problème.
    Je joins la macro.
    Cordialement.
    Clévic
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Dans la procédure de calcul de la somme remplacer
    Cellule.Value par Cells(i,j).Value

  3. #3
    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
    Bonjour,
    tu peux essayer ce code
    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
    Private Sub CommandButton5_Click()
     
    'Calcule la somme des cellules sélectionnées
    Dim i As Integer, j As Integer, n As Integer, t As Currency
    Dim Plage As Range, cel As Range
    t = 0
    With Sheets("feuil1")
      Set Plage = .Range("B4:B12") 'pour une colonne, pour 2 .Range("B4:C12")
    End With
    For Each cel In Plage
      If cel.Interior.ColorIndex = 5 Then
        t = t + cel
      End If
    Next cel
    Cells(1, 10) = t
     
    End Sub
    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...)

  4. #4
    Membre confirmé
    Homme Profil pro
    Comptable
    Inscrit en
    Décembre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2012
    Messages : 57
    Par défaut
    Bonjour à tous,
    Tu peux également essayer ce code :
    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
    Private Sub UserForm_Initialize()
        Dim Couleur As Long
        Dim color As String
        Dim tablo()
     
     'récupère la couleur RGB de la police de la cellule
    Set mon_dico = CreateObject("Scripting.dictionary")
    Set ma_plage = Range("a1:c8")
    For Each cell In ma_plage
     
    c = cell.Interior.color
        Bleu = c \ 65536
        Vert = (c - Bleu * 65536) \ 256
        Rouge = c - Bleu * 65536 - Vert * 256
        color = Rouge & "," & Vert & "," & Bleu
    'Me.Label1.Caption = cell
    If Not mon_dico.exists(cell.Interior.ColorIndex & cell.Font.color) Then
    i = i + 1
        mon_dico.Add cell.Interior.ColorIndex & cell.Font.color, i
        ReDim Preserve tablo(1 To 6, 1 To i)
        tablo(1, i) = cell
        tablo(2, i) = color
        tablo(3, i) = Bleu
        tablo(4, i) = Vert
        tablo(5, i) = Rouge
        tablo(6, i) = cell.Font.color
    Else
        For p = 1 To UBound(tablo, 2)
            If tablo(2, p) = color And tablo(6, p) = cell.Font.color Then
                If cell Like "*[*a-z*]*" Then
                    tablo(1, p) = tablo(1, p) & " " & cell
                Else
                    tablo(1, p) = tablo(1, p) + cell
                End If
            End If
        Next p
       ' mon_dico.Item(cell.Interior.ColorIndex) = mon_dico.Item(cell.Interior.ColorIndex) + cell
    End If
    'MsgBox tablo(1, 4)
     
    Next cell
    For m = 1 To UBound(tablo, 2)
        'MsgBox tablo(1, m) & " - " & tablo(2, m)
    Next m
    For h = 1 To mon_dico.Count
     Set Obj = Me.Controls.Add("forms.Label.1")
        With Obj
            .Name = "Label" & h
            '.Object.Value = "Kv" & i
            .Left = PosX
            .Top = 30 * ((h - 1) Mod 5) + 40
            .Width = 50
            .Height = 20
            .BackColor = RGB(tablo(5, h), tablo(4, h), tablo(3, h)) 'mon_dico.Item(i)
            .Caption = tablo(1, h)
            .ForeColor = tablo(6, h)
        End With
        Set Cl = New Classe1
        Set Cl.Label = Obj
        If h Mod 5 = 0 Then PosX = PosX + 80
    Next h
     
    End Sub
    Il te fait la somme de toutes les couleurs présentes dans la selection, en rappelant les couleurs dans l'userform...

    En espérant que cela t'aide.

  5. #5
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro pour somme de cellules colorées
    bonjour,

    voici ton code corrigé sans fioriture.
    la boucle j était inutile et comme dit plus haut cellule devient cells(i,2).

    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 Couleur()
     
    'Calcule la somme des cellules sélectionnées
    Dim i As Integer
    ' dim t as ????
    t = 0
    For i = 4 To 12
            If Cells(i, 2).Interior.ColorIndex = 5 Then
               t = t + Cells(i, 2).Value
            End If
    Next i
    Cells(1, 10) = t
     
    End Sub
    cordialement.

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/03/2011, 18h00
  2. [XL-2003] macro pour remplir une cellule en fonction d'une autre
    Par kamilane dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/07/2010, 15h40
  3. [XL-2003] Macro pour copier une cellule d'un classeur à un autre sous condition
    Par mairiemeudon dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 14/06/2010, 15h28
  4. macro pour selectionner des cellules
    Par Daniela dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/02/2009, 08h27
  5. Macro pour calculer 5700 cellules
    Par Blord dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 28/10/2008, 20h14

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