C
Cocoi
Guest
Bonjour tout le monde,
Je suis confronté à un problème d'optimisation ayant trait à des boucles. Pour l'instant ma macro marche mais c'est très très long.
Le principe est le suivant: j'ai une liste A que l'on me soumet et je souhaite comparer avec une liste B que j'ai moi-même établi. Si un élément de la liste A correspond à un de liste B, je mets l'élement liste A en rouge et y ajoute un "-L" à la fin. Si qqun peut m'aider à optimiser le code suivant, je lui en serai très reconnaissant. Merci d'avance.
Je suis confronté à un problème d'optimisation ayant trait à des boucles. Pour l'instant ma macro marche mais c'est très très long.
Le principe est le suivant: j'ai une liste A que l'on me soumet et je souhaite comparer avec une liste B que j'ai moi-même établi. Si un élément de la liste A correspond à un de liste B, je mets l'élement liste A en rouge et y ajoute un "-L" à la fin. Si qqun peut m'aider à optimiser le code suivant, je lui en serai très reconnaissant. Merci d'avance.
Code:
Sub LEASERS()
Dim V_CELLULE_COMPAGNIE As String, V_CELLULE_REGION, i As Long
For i = 4 To 450
'pour figer l'écran
Application.ScreenUpdating = False
'Activer la feuille Orders
Sheets("Synthese").Select
'Sélectionner la cellule Bx (ici B4)
V_CELLULE_COMPAGNIE = "B" & i
Range(V_CELLULE_COMPAGNIE).Select
'Condition pour sortir la boucle FOR NEXT (ici : si la cellule est vide)
If Trim(ActiveCell.Text) = "" Then
Exit Sub
Else
'Appeler une fonction pour chercher dans la feuille Leasers : si la valeur retounée est true, c'est à dire "trouvé"
If COMPARER_LEASERS(ActiveCell.Text) = True Then
'Activer la feuille Orders
Sheets("Synthese").Select
Range(V_CELLULE_COMPAGNIE).Select
Selection.Font.ColorIndex = 3
'Ajouter un -l à la fin de région
V_CELLULE_REGION = "D" & i
Range(V_CELLULE_REGION).Select
ActiveCell.FormulaR1C1 = ActiveCell.Text & "-l"
End If
End If
Next
Application.ScreenUpdating = True
'Afficher une message
Sheets("Process").Select
Range("A1").Activate
MsgBox "Leasers Boeing tries", vbOKOnly, "Leasers Boeing"
End Sub
Function COMPARER_LEASERS(V_CONTENU As String) As Boolean
Sheets("Leasers").Select
Dim V_CELLULE As String, i As Integer
For i = 2 To 500
Application.ScreenUpdating = False
V_CELLULE = "A" & i
Range(V_CELLULE).Select
If ActiveCell.Text = "" Then
Exit Function
Else
If ActiveCell.Text = V_CONTENU Then
COMPARER_LEASERS = True
Exit For
Else
COMPARER_LEASERS = False
End If
End If
Next
End Function