Macro rapidité Scripting.dictionary
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!:oops:
Code:
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 |
J'ai entendu parler de scripting.dictionary mais sans comprendre son utilité pour ce genre de code!
Pourriez-vous partager vos connaissances à se sujet?