Bonjour je viens vers vous car j'ai un probleme avec une macro vba. Pour faire simple j'ai crée une macro pour comparée de colone de string dans 2 feuilles differentes afin de creer une 3 eme string contenue le resultat de cette comparaison. Pour ce faire je stock toute mes données dans un tableau a 3 dimension je fais les comparaison que j'ai a faire et tout est bon. Mon probleme est le suivant : je n'arrive pas a copier les valeur de mon tableau donc juste la 3eme colones dans une feuille excel. Excel bug et redemarre a chaque fois que je lance la macro. Au bout de quelque seconde les donnée s'affiche dans les cellules mais le logiciel redemarre quelque seconde apres. Voila mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Function MULTIPLEVLOOKUP(lookupval, lookuprange As Range, indexcol As Long)
Dim lastLine As Integer, i As Integer
 
Application.ScreenUpdating = False
 
'derniere ligne de la base'
lastLine = 9999
 
Dim tab_bd() As String
ReDim tab_bd(lastLine, 2)
 
For i = 0 To lastLine
    tab_bd(i, 0) = Range("A" & i + 2)
    tab_bd(i, 1) = Sheets("TORXX").Range("B" & i + 2)
Next
 
Dim j As Integer
j = 2
 
For j = 2 To 4600
    For i = 1 To lastLine
        If tab_bd(j, 0) = tab_bd(i, 1) Then
            If Trim(tab_bd(j - 2, 2) & vbNullString) = vbNullString Then
                'MsgBox Sheets("TORXX").Range("A" & i + 2) & ", "
                tab_bd(j - 2, 2) = Sheets("TORXX").Range("A" & i + 2) & ", "
            Else
                tab_bd(j - 2, 2) = tab_bd(j - 2, 2) & Sheets("TORXX").Range("A" & i + 2)
            End If
        End If
    Next
Next
 
Dim s As Integer
s = 0
 
---------------------------------------------
For i = 3 To 30                                                                             zone en pointillé est je pense la partie qui bug. Merci beaucoup
Range("B" & i + 1) = tab_bd(s, 2)
s = s + 1
Next
 
---------------------------------------------
Application.ScreenUpdating = True
 
End Function
Merci beaucoup