Variables tableau : erreur Type Mismatch
Bonjour à tous et meilleurs voeux pour 2016 :chin:
Je suis en train de modifier une macro en utilisant des tableaux à deux dimensions afin d’optimiser mon temps de traitement, actuellement 144,6 sec…
Dans un premier temps j’ai déclaré mes deux tableaux
Code:
1 2
| Dim Table1() As String 'Declaration du tableau 1
Dim Table2() As String 'Declaration du tableau 2 |
Puis j’ai chargé mes tableaux :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ReDim Table1(0 To NbLine, 18) '18 etant le Nb de Col du fichier avec les donnees detaillees
ReDim Table2(0 To NbLine1, 20) '20 etant le Nb de Col du fichier qui doit être importe
For i = 0 To UBound(Table1, 1)
For j = 0 To 18
Table1(i, j) = Up.Offset(i, j)
Next j
Next i
For i2 = 0 To UBound(Table2, 1)
For j2 = 0 To 18
Table2(i2, j2) = Tsk.Offset(i2, j2)
Next j2
Next i2 |
L’objectif de ma macro est de comparer certaines valeurs des deux tableaux pour modifier l’un d’entre eux et ensuite aller modifier mon fichier Excel avec le tableau mis à jour.
Code:
1 2 3 4 5 6
|
For i = 0 To NbLine1
For j = 0 To NbCol1
Tsk.Offset(i, j) = Table1(i, j)
Next j
Next i |
Le problème est que j’obtiens une erreur “Type Mismatch” sur la ligne suivante
Code:
1 2
|
If ((Table2(i2, 12) = 0 Or Table2(i2, 12) = "") And Table1(i, 14) = "00:00:00") Or ((Table2(i2, 12) = 0 Or Table2(i2, 12) = "") And Table1(i, 14) <> "00:00:00") Then |
J’ai mis un espion sur et je vois que ma variable est du type String, comme déclarée précédemment
J’ai mis un autre espion sur l’expression
Citation:
(Table2(i2, 12) = 0 Or Table2(i2, 12) = "")
et là mon expression est du type Integer, je pense que c’est là que ça cloche mais je ne sais pas pourquoi…
Quelqu’un a-t-il une idée sur la co..rie que j’ai pu faire ou sur ce que je n’ai pas fait ?
Merci pour votre aide et votre collaboration
Eric