Bonjour
J’ai écrit un code pour renommer certaines références produit.
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
 
Sub Macro2()
 
'Déclaration
Dim f As Integer
Dim i As Integer
Dim tab1(176)
Dim tab2(176)
Dim tab3(301)
Dim tab4(301)
 
'Enregistrement des valeurs dans le tableau
For i = 1 To 176
    tab1(i) = Worksheets("Feuil2").Range("B" & i)
    tab2(i) = Worksheets("Feuil2").Range("C" & i)
Next
 
For i = 1 To 301
    tab3(i) = Worksheets("données").Range("D" & i + 5)
    tab4(i) = 0
Next
 
i = 1
f = 1
 
Do While i < 302
    If tab3(i) = tab1(f) Then tab4(i) = tab2(f): i = i + 1: f = 1 Else: f = f + 1
Loop
 
End Sub
Ce premier code fonctionne correctement, mais certains produits ont des codes identiques et ils ont un code secondaire pour les différencier
Sur ce nouveau code, vba me met le message d'erreur 9 l'indice n'appartient pas à la sélection pour la ligne 26
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
Sub Macro2()
 
'Déclaration
Dim f As Integer
Dim i As Integer
Dim tab1(176)
Dim tab2(176)
Dim tab3(301)
Dim tab4(301)
 
'Enregistrement des valeurs dans le tableau
For i = 1 To 176
    tab1(i) = Worksheets("Feuil2").Range("A" & i) & " " & Worksheets("Feuil2").Range("B" & i)
    tab2(i) = Worksheets("Feuil2").Range("C" & i)
Next
 
For i = 1 To 301
    tab3(i) = Worksheets("données").Range("C" & i + 5) & " " & Worksheets("données").Range("D" & i + 5)
    tab4(i) = 0
Next
 
i = 1
f = 1
 
Do While i < 302
    If tab3(i) = tab1(f) Then tab4(i) = tab2(f): i = i + 1: f = 1 Else: f = f + 1
Loop
 
End Sub
J'ai cherché et je ne comprends toujours pas mon erreur, si quelqu'un peut m'expliquer
Merci
Adrien