Je viens une nouvelle fois solliciter votre aide concernant un script qui me faciliterait la tache.
J'ai une base client sous excel que je dois comparer avec un fichier blackliste sous excel.
D un coté 12030 lignes et de l autre 25876
Je dois vérifier qu'aucun de mes clients ne figure sur cette liste ou sinon je dois aller vérifier les informations de cette personne.
Code : Tout sélectionner
#include <Excel.au3>
#include <MsgBoxConstants.au3>
$time = @MDAY &"/"& @MON &"/"& @YEAR &" - "& @HOUR &"H"& @MIN &" "& @SEC &" sec"
; Create application object
Local $path = "C:\Users\toto\Documents\blacklist"
Local $oAppl = _Excel_Open()
FileOpen("log.txt")
If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $sWorkbook = $path & "\client.xls"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $nb_ligne = $oAppl.ActiveSheet.UsedRange.Rows.Count ; Compte le nombre de lignes actives
Local $oAppl1 = _Excel_Open()
Local $sWorkbook1 = $path & "\global.xls"
Local $oWorkbook1 = _Excel_BookOpen($oAppl1, $sWorkbook1, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook1 & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $nb_ligne1 = $oAppl1.ActiveSheet.UsedRange.Rows.Count ; Compte le nombre de lignes actives
FileWriteLine("log.txt", "Liste des personnes appartenant à la liste et qui sont clients:" & @CRLF )
For $i = 2 to $nb_ligne
; Recherche
local $cell = "B" & $i
local $search_keyword = _Excel_RangeRead($oWorkbook, Default, $cell )
$j = 2
While $j <> $nb_ligne1+1
local $cellule = "B" & $j
Local $cellule1 = _Excel_RangeRead($oWorkbook1, Default, $cellule )
if $search_keyword = $cellule1 Then
FileWriteLine("log.txt", $search_keyword & " Cellulee n° " &$cell & "et " & $cellule)
ExitLoop
EndIf
$j=$j+1
WEnd
Next
FileClose("log.txt")
_Excel_Close($oAppl)
_Excel_Close($oAppl1)
MsgBox(1, "fin de traitement", $time)
Y a t il un moyen d'optimiser les appels (310205580 comparaisons)?
J'ai essayé d'exporter en csv pour pouvoir travailler sur un fichier texte mais lorsque je segmente les lignes
Code : Tout sélectionner
$line = StringSplit($read, @CR)Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded
Avez vous un chemin de solution?
Ps:
global.xls = http://ec.europa.eu/external_relations/ ... global.xml
client.xls :
Code NOM PRN
10001 Toto toto
10001 Titi titi
10003 Tata tata





