Bonjour à tous et meilleurs voeux pour 2016
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Table2(i2, 12)
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
(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