Salut les Kracks,
Je souhaiterai optimiser la macro suivante, c'est à dire réduire son temps d'exécution car elle est mal consu, d'ailleurs il n'y a que les mâle qu'on sus!
J'ai entendu parler de scripting.dictionary mais sans comprendre son utilité pour ce genre de 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 Option Explicit Sub Commentsadd() Application.ScreenUpdating = False Dim c1 As Range, c2 As Range Dim plage1 As Range, plage2 As Range Set plage1 = ThisWorkbook.Worksheets("Signatory_Data").Range("F2:F32632") Set plage2 = ThisWorkbook.Worksheets("Client_list2").Range("H2:H36128") For Each c1 In plage1 'c1= un champ texte string For Each c2 In plage2 ' si c2 contient c1 (parfois le nom match complètement mais parfois il est inclus seulement dans une phrase If c2 Like ("*" + c1 + "*") And c2.Offset(0, -7) = c1.Offset(0, -4) Then 'deuxième conditions = numéro d'identifiant commun c1.Offset(0, 2).Value = c2.Offset(0, 5).Value Debug.Print c1.Address ' me sert pour me situer pendant l'exécution du code sachant qu'il y a + de 30000 lignes à comparer contre + de 30000 End If Next c2 Next c1 Application.ScreenUpdating = True End Sub
Pourriez-vous partager vos connaissances à se sujet?
Partager