Comparaison de variable

[RESOLU]

Bonjour,

Je commence à peine le VBA et j'ai du mal à comprendre des différents types de variables et les possibilités qui nous sont offertes.

Je souhaite comparer une valeur enregistrée dans un tableau à une constante définie plus tôt, or, lors de l'exécution, j'ai l'erreur 13 (type incompatible) qui apparait. Je comprend donc bien que je ne pas comparer deux types de variables différents, mais donc comment puis-je passer outre ce soucis ?

(Je ne vous ai pas mis tout le code parce qu'il est quand même sacrément long et pas forcément hyper bien organisé)

For i = 0 To NbLignes

    If mes(i, 2) >= maxA2 Then

            For indic = 0 To i
            mes(indic, 4) = 1
            Next

    Else:   For indic = i To NbLignes
            mes(indic, 4) = 0
            Next
    End If

Merci d'avance :)

Bonjour,

Comment avez-vous déclaré et dimensionné la matrice mes ?

A quoi correspond NbLignes ?

mes() est declaré en String. J'ai essayé de le déclaré en Variant mais cela me crée une erreur.

NbLignes correspond au nombre de ligne que j'ai dans mon tableau, soit le nombre de mesures à traiter et à intégrer dans la matrice.

Edit : Forcément que je ne peux pas comparer une variable en String (texte) avec une en Single (numérique). Mais dans ce cas, en quoi dois-je déclarer mon tableau ?

Edit n°2 : J'ai déclaré en Variant, l'erreur n'apparait plus, et ça fonctionne. Merci Eric de m'avoir fait réfléchir :)

Ci-joint, un code qui simule les étapes que vous devriez vérifier dans le vôtre :

Option Explicit

Public mes() As Variant

Sub Test()

Dim I As Integer, J As Integer
Dim Indic As Integer, NbLignes As Integer, MaxA2 As Integer
Dim AireTest As Range

    Set AireTest = Range("t_Essai")
    MaxA2 = Range("A2")

    With AireTest
       ReDim mes(.Rows.Count - 1, .Columns.Count - 1)
       For I = 1 To .Rows.Count
           For J = 1 To .Columns.Count
               mes(I - 1, J - 1) = .Cells(I, J)
           Next J
       Next I
    End With

    For Indic = LBound(mes, 1) To UBound(mes, 1)
        If mes(Indic, 2) >= MaxA2 Then
                mes(Indic, 4) = 1
        Else
                mes(Indic, 4) = 0
        End If
    Next Indic

    For Indic = LBound(mes, 1) To UBound(mes, 1)
       Debug.Print mes(Indic, 0) & ", " & mes(Indic, 2) & ", " & mes(Indic, 4)
    Next Indic

End Sub
Rechercher des sujets similaires à "comparaison variable"