Bonjour à tous,
Voici mon problème : j'ai deux fichiers excel contenant chacun diverses informations sur des achats. Dans chaque fichier on retrouve un code client ( un client est désigné par le même code dans les deux fichiers ). Dans l'un des fichiers, le client est associé à une catégorie. Je souhaite que cette catégorie se retrouve dans l'autre fichier en face du bon client.
J'ai d'abord utilisé deux boucles for, le code marchait très bien mais, le fichier étant important, le code prenait autour d'1h30 à s'exécuter...
J'ai alors trouvé une autre façon de faire plus rapide que je ne connaissais pas en fouillant un peu : passer par deux variables de type Variant.
Cependant, lors de l'exécution du code, survient l'erreur d'exécution 9.
Voici mon code :
Le problème semble venir du " w(j, 11) = v(i, 7) " de la ligne 22.
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 segmentPersonnesFichierOTC() nomClasseur = InputBox("Entrer le nom du classeur contenant les informations sur les OTC") Set feuilOTC = Workbooks.Item(nomClasseur).Worksheets.Item(1) Dim plage As Range Dim v As Variant Dim w As Variant Dim plage2 As Range Dim m As Long Dim i As Long Dim j As Long n = WorksheetFunction.CountA(Me.Range("A:A")) m = WorksheetFunction.CountA(feuilOTC.Range("A:A")) Set plage = Me.Range("A2:K" & n) Set plage2 = feuilOTC.Range("A2:G" & m) v = plage w = plage2 For j = 1 To m For i = 1 To n If v(i, 1) = w(j, 1) Then w(j, 11) = v(i, 7) End If Next i Next j plage = v plage2 = w End Sub
Quelqu'un aurait-il une solution à me proposer ?
Partager