Je suis confronté à l'utilisation d'une fonction que j'ai construite dans VBA. J'essaie de l'utiliser dans une autre feuille que celle à laquelle je me réfère à l'intérieur de la fonction, mais je reçois une erreur de référence circulaire. Quelqu'un pourrait-il m'aider s'il vous plaît? C'est la première fois que j'écris un code en VBA, donc s'il vous plaît comprenez si les erreurs sont ... drôles.Erreur de référence circulaire VBA de la fonction
Function Dividend(row As String, col As Date) As Variant
Dim Table As Range
Dim Blgdata() As Variant
Dim v As Integer
Dim h As Integer, var As Date
v = 666
h = 27
Sheets(3).Activate
Set Table = Range(Cells(179, 1), Cells(844, 27))
Debug.Print Table.Address
ReDim Blgdata(1 To v, 1 To h)
Blgdata = Table
Dim i As Integer, j As Integer
'For i = 1 To 666
' For j = 1 To 26
' Debug.Print Blgdata(i, j)
' If Blgdata(i, j + 1) = 0 Then
' Exit For
'
' End If
'Next j
'Next i
For i = 1 To v Step 7
If Blgdata(i, 1) = row Then
For j = 3 To h
var = Blgdata(i + 1, j)
'Debug.Print var
If (var = col) Then
Dividend = Blgdata(i + 4, j)
Exit For
End If
If j = h Then
Dividend = "-"
Exit For
End If
If Blgdata(i, j + 1) = 0 Then
Exit For
End If
Next j
End If
Next i
End Function
Quelle ligne de code produit l'erreur? Et le code ci-dessus dans une feuille de calcul ou dans un module (si feuille, lequel)? –
Non apparenté, mais 'row As String, col As Date' dans la signature, n'a tout simplement pas l'air juste. En fait, il est tout à fait déroutant - à l'avenir, vous regarderez ce code en disant "WTF?!" dans quelques mois à partir de maintenant. Une ligne/colonne devrait raisonnablement être un entier long faisant référence à un index de ligne/colonne. –
Vous pouvez utiliser un outil tel que [Rubberduck] (http://rubberduckvba.com/indentation) (avertissement: je gère ce projet open-source) pour vous aider à créer une indentation correcte. –