Utilisation de la fonction fonction Find
Bonjour à tous !
Aujourd'hui j'ai une petite problématique. Je vous l'expose.
J'ai deux tableaux : "Equipement Pre" & "Equipement Post"
Je veux trouver quels sont les équipements présents dans "Equipement Post" qui ne sont pas dans "Equipement Pre".
Voici mon code :
Code:
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
| ' /////////////////////////////////
' /// DECLARATION DES VARIABLES ///
'/////////////////////////////////
Dim j As Integer 'Variable tableau Equipement Pre
Dim k As Integer 'Variable tableau Equipement Post
Dim v As Integer 'Variable tableau CR MENSUEL
Dim num_gmao As Long 'Variable contenant le numéro GMAO de l'équipement recherché
'------------------------ TABLEAU EN PLUS --------------------------------------------------------------------
' ////////////////////////////////////
' /// INITIALISATION DES VARIABLES ///
'////////////////////////////////////
j = 2
k = 2
v = 7
' //////////////////
' /// ALGORITHME ///
'//////////////////
While Workbooks("Equipement Post").Sheets(1).Cells(k, 1) <> ""
num_gmao = Workbooks("Equipement Post").Sheets(1).Cells(k, 1)
j = 2
While (Workbooks("Equipement Pre").Sheets(1).Cells(j, 1) <> num_gmao And Workbooks("Equipement Pre").Sheets(1).Cells(j, 1) <> "")
j = j + 1
Wend
If Workbooks("Equipement Pre").Sheets(1).Cells(j, 1) = "" Then
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Cells(v, 1) = Workbooks("Equipement Post").Sheets(1).Cells(k, 1)
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Cells(v, 2) = Workbooks("Equipement Post").Sheets(1).Cells(k, 3)
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Cells(v, 3) = Workbooks("Equipement Post").Sheets(1).Cells(k, 2)
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Cells(v, 4) = Workbooks("Equipement Post").Sheets(1).Cells(k, 9)
v = v + 1
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Activate
Workbooks("CR MENSUEL").Sheets("EVOLUTION DU PERIMETRE").Range(Cells(v, 1), Cells(v, 7)).Select
Selection.Insert
End If
k = k + 1
Wend |
Le problème avec cet algo est que le fichier est très long est donc le temps de calcul est très long. Comme je débute en VBA j'ai découvert que la fonction find peut considérablement m'aider à réduire mon temps de calcul.
Je vois comment rechercher un mot par cette fonction. Par contre je ne sait pas comment repérer la ligne (dans une variable i par exemple) sur laquelle se trouve le mot trouvé.
Je ne demande pas que l'on me fasse tout l'algo mais juste la façon de trouver la ligne sur laquelle est placé le mot trouvé.