Error Value, Utilisation Cells, VBA

djyo

XLDnaute Nouveau
Bonjour,

C'est un peu une question de débutant en Vba mais, j'ai fait une fonction, mais à chaque fois elle me rend l'erreur #VALUE!, je ne sais pas pourquoi...
Elle s'applique à 5 cellules, et en matriciel, avec dans les cellules écrit:
=Fonct(ROW(A7);COLUMN(A7))

VB:
Function Fonct(Row, Col)
Randomize
Application.Volatile

Dim REP()
ReDim REP(1 To 5)

        For i = 1 To 5
            Random = Int(Rnd * 2)
            If (Random = 1) Then
                'REP(i) = Cells(7, 1 + i)  Cette ligne marche mais les deux suivantes non
                REP(i) = ActiveSheet.Cells(Row, Col + i)
                Cells(Row, Col + i).Interior.ColorIndex = 15
            ElseIf (Random = 0) Then
                REP(i) = "Rien"
                Cells(7, 7 + i).Interior.ColorIndex = 2
            End If
        Next i
        
    Fonct = REP()

End Function
 

Pièces jointes

  • Book2.xlsm
    14.5 KB · Affichages: 37
  • Book2.xlsm
    14.5 KB · Affichages: 40
  • Book2.xlsm
    14.5 KB · Affichages: 43

Fred0o

XLDnaute Barbatruc
Re : Error Value, Utilisation Cells, VBA

Bonjour Djyo,

Voici comment modifier ta fonction pour qu'elle fonctionne. J'ai rajouté des (1) sur les variables Row et Col (que j'ai au passage renommé R et C pour éviter les conflits).
Ensuite, une fonction ne peut pas modifier des couleurs. Elle peut seulement effectuer des calculs et renvoyer une ou des valeurs. Ceci faisait planter ta macro.
VB:
Function Fonct(R, C)
    Randomize
    Application.Volatile
    Dim REP()
    ReDim REP(1 To 5)
    For i = 1 To 5
        Random = Int(Rnd * 2)
        If (Random = 1) Then
            'REP(i) = Cells(7, 1 + i)
            REP(i) = ActiveSheet.Cells(R(1), C(1) + i)
'                Cells(R(1), C(1) + i).Interior.ColorIndex = 15
        ElseIf (Random = 0) Then
            REP(i) = "Rien"
'                Cells(R(1), C(1) + i).Interior.ColorIndex = 2
        End If
    Next i
    Fonct = REP
End Function

A+

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 836
Messages
2 092 651
Membres
105 479
dernier inscrit
chaussadas.renaud