Bonjour,
Je cherche un moyen rapide de déterminer si un groupe de cellules de ma feuille "encours" existe aussi dans la feuille "historique".
Par exemple la feuille "encours" est définie comme suit:
No Obj | Date Recep | Récepteur
022152| 01/01/2005 | ALEC
022352| 01/02/2005 | ALEC
023512| 01/10/2005 | FMAR
025622| 01/05/2005 | ALEC
028652| 01/01/2005 | ALEC
029652| 01/06/2005 | FMAR
et la feuille "historique" est définie de la façon suivante:
Date Histo | No Obj | Date Recep | Récepteur
28/12/2005| 052365| 01/12/2005 | AHIN
01/01/2006| 029652| 01/06/2005 | FMAR
01/02/2006| 028652| 01/01/2005 | ALEC
05/05/2006| 012354| 25/05/2003 | FCHA
Je souhaiterais savoir si une fonction du type VLOOKUP existe pour rechercher la plage composée de toutes les données d'une ligne de la feuille "encours" dans la feuille historique:
j'aurais ainsi un indicateur d'existence pour les 2 dernières lignes de ma feuille "encours".
Actuellement, j'ai mis en place la recherche suivante:
Toutefois, lorsque je traite plus de 6000 lignes par feuilles, le temps de traitement est un peu trop long. L'optimisation de ce dernier serait une bonne chose.
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 ' Calcul de nombre de ligne dans le fichier des encours maxLigneEC = Calc_Lignes(ActiveWorkbook.Name, Sheets(wksEC).Name) ' Calcul de nombre de ligne dans le fichier des historiques maxLigneHisto = Calc_Lignes(ActiveWorkbook.Name, Sheets(wksHisto).Name) ' Définit la plage de cellules à traiter dans la feuille des encours Set plageEC = Range(Cells(2, 1), Cells(maxLigneEC, 3)) ' Définit la plage de cellules à traiter dans la feuille des historiques Set plageHisto = Sheets(wksHisto).Range(Cells(2, 2), Cells(maxLigneHisto, 3)) ligneEC = 1 ligneHisto = 1 For ligneEC = 1 to maxLigneEC For ligneHisto = 1 to maxLigneHisto ' Si les colonnes correspondent If plageEC(ligneEC, 1).Value = plageHisto(ligneHisto, 1).Value _ And plageEC(ligneEC, 2).Value = plageHisto(ligneHisto, 2).Value _ And plageEC(ligneEC, 3).Value = plageHisto(ligneHisto, 3).Value Then ligneDiff = False Exit For End If Next ligneHisto ' je prend en compte mon ligneDiff et je boucle ' ...... Next ligneEC
Je vous remercie d'avance de vos réponses.
Cordialement,
Asayeh
Partager