Méthode value de l'objet range à échoué - Comptage de points

Bonjour,

Je suis débutant en VBA et dans le cadre de ma mission d'alternance, je dois compter le nombre de point sur une ligne via la couleur d'une cellule.

Par exemple, si la cellule D4 est verte, cela ajoute 10 point a un compteur et ainsi de suite. Une fois les colonnes parcouru, la valeur du compteur doit être mise dans la colonne M pour avoir la valeur de pondération de la ligne puis je passe à la ligne suivante.

Cependant, à l'étape où je souhaite remplir la colonne M avec l'indice de ligne correspondant, je rencontre l'erreur "La méthode value de l'objet range à échoué". Je vous avoue que je ne comprends pas vraiment l'origine de l'erreur, surtout que cela fonctionne avec une autre macro faisant un traitement similaire.

Voici le code, j'ai également joint le fichier simplifié.

Sub Test()
'
' Test Macro
'
Dim CptIndicateurGlobalCol As Integer
Dim CptIndicateurGlobalLigne As Integer
Dim Cpt As Integer

CptIndicateurGlobalLigne = 4
CptIndicateurGlobalCol = 4
Cpt = 0

Application.EnableEvents = False

While CptIndicateurGlobalLigne <> 16
    While CptIndicateurGlobalCol <> 12
        If Cells(CptIndicateurGlobalLigne, CptIndicateurGlobalCol).Interior.Color = RGB(146, 208, 80) Then
            Cpt = Cpt + 10
        ElseIf Cells(CptIndicateurGlobalLigne, CptIndicateurGlobalCol).Interior.Color = RGB(255, 255, 0) Then
            Cpt = Cpt + 5
        ElseIf Cells(CptIndicateurGlobalLigne, CptIndicateurGlobalCol).Interior.Color = RGB(255, 192, 0) Then
            Cpt = Cpt - 5
        ElseIf Cells(CptIndicateurGlobalLigne, CptIndicateurGlobalCol).Interior.Color = RGB(255, 0, 0) Then
            Cpt = Cpt - 10
        Else
            Cpt = Cpt + 0
        End If

        Range("M" & CptIndicateurGlobalLigne).Value = Cpt
        Cpt = 0
    Wend
    Cpt = 0
    CptIndicateurGlobalLigne = CptIndicateurGlobalLigne + 1
    CptIndicateurGlobalCol = 4
Wend

Application.EnableEvents = True

'
End Sub

Pourriez-vous m'éclairer sur une éventuelle solution ?
Je vous remercie d'avance.

Axel :) !

Bonjour,

A tester :

Option Explicit

Sub Test()

Dim I As Integer, J As Integer, DerniereColonne As Integer, DerniereLigne As Integer, Cpt As Integer
Dim Sh As Worksheet

    Set Sh = Sheets("Général à décliner palier")

    With Sh

         DerniereColonne = .Cells(3, .Columns.Count).End(xlToLeft).Column - 1
         DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
         For J = 4 To DerniereLigne
             Cpt = 0
             For I = 1 To DerniereColonne
                 Select Case .Cells(J, I).Interior.Color
                        Case RGB(146, 208, 80)
                             Cpt = Cpt + 10
                        Case RGB(255, 255, 0)
                             Cpt = Cpt + 5
                        Case RGB(255, 192, 0)
                             Cpt = Cpt - 5
                        Case RGB(255, 0, 0)
                             Cpt = Cpt - 10
                  End Select
             Next I
             .Cells(J, "M") = Cpt
         Next J
   End With

   Set Sh = Nothing

End Sub

Bonjour,

Cela fonctionne, merci beaucoup ! (Et merci pour l'optimisation de code).

Bonne journée

Axel

Rechercher des sujets similaires à "methode value objet range echoue comptage points"