Problème d'incompatibilité de type sur variable tableau

Bonjour à tous,

N'ayant pas trop l'habitude des appels de procédure avec variable tableau, je bute sur le code de la macro suivante :

Sub test()
Dim matbase() As Single, i%, j%, k%, l%
    ReDim matbase(1 To 4, 1 To 5)
    For i = 1 To UBound(matbase, 1)
        For j = 1 To UBound(matbase, 2)
            matbase(i, j) = i & j
        Next j
    Next i
    k = 2: l = 2
    Call cherchezeroH(matbase(), k, l)
End Sub

J'ai cette erreur :

file.php mode view id 473 sid a98ae3717063053bde8030e5bb8aae9f

à la ligne

Call cherchezeroH(matbase(), k, l)

Voici le code de la macro cherchezeroH :

Sub cherchezeroH(matrice(), lign, col)
Dim j%
    For j = 1 To col
        If matrice(lign, j) = 0 Then MsgBox "i=" & lign & " j=" & j
    Next j
End Sub

Le problème doit être simple, mais je ne comprends pas d'où vient l'erreur

Merci d'avance pour votre aide

Bonsoir,

dans ton code, le tableau "matbase" n'est pas du "Single", mais du "Variant"..

Bonne soirée

Salut cousinhub,

Merci pour ta réactivité!

Dans ce cas, dans la macro cherchezeroH, est-il possible de déclarer la variable matrice() en "Single"?

Re,

je suppose que tu as du essayer, et que cela n'était pas non plus possible...

Pour voir le type de variable, tu cliques au milieu du nom de ta variable, tu fais "Débogage/Ajouter un Espion"

et en déroulant ton code, tu vois le type que peut prendre ta variable, si tu ne l'as pas encoré spécifiquement déclarée....

Bonne soirée

bug n serie3
cousinhub a écrit :

je suppose que tu as du essayer, et que cela n'était pas non plus possible...

J'ai essayé en déclarant en "Single" la variable matrice() :

Sub cherchezeroH(matrice() As Single, lign, col)
Dim j%
    For j = 1 To col
        If matrice(lign, j) = 0 Then MsgBox "i=" & lign & " j=" & j
    Next j
End Sub

et j'ai gardé le "Single" de la variable matbase dans la macro test() et ça marche! C'est normal?

bonjour à tous,

lorsque tu appelles une macro paramétrée , ne met pas de parenthèses

Call cherchezeroH matbase(), k, l
ou aussi
cherchezeroH matbase(), k, l

et j'aurais tendance à écrire (non testé)

cherchezeroH matbase , k, l

puisque matbase est déclaré et affecté de valeurs

Bonjour michel,

La syntaxe "Call cherchezeroH matbase(), k, l" renvoie une erreur de compilation.

Mais la deuxième est marche.

Merci à vous deux pour vos explications.

Je mets le post en résolu.

Rechercher des sujets similaires à "probleme incompatibilite type variable tableau"