je viens ici car j'ai un petit soucis avec mon code. je tiens à remercier d'ores déjà les personnes qui vont m'aider.
je suis en train de rédiger un script qui va ouvrir deux workbook excel et faire un Check pour voir si il n'y a pas un numéro qui se retrouve dans la deuxième liste. si elle est présente elle écrit dans la colonne "B" NOK a coté de la ligne du numéro concerné.
pourquoi ne pas utiliser la fonction de base d'excel ? car il y a 1 000 000 de numéro et excel ne supporte pas autant de nombre pour des formules.
mon problème : si le nombre se retrouve dans la deuxième liste il m'affiche bien la MsgBox mais ne m'écrit pas NOK à coté de celui ci et il ne m'affiche aucune erreur bizarrement.
voici le code :
#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>
HotKeySet("{ESC}", "_Terminate")
; Créer un objet application
Local $oAppl = _Excel_Open()
If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;************************************************** ***************************
;Declaration des compteurs
;************************************************** ***************************
Local $cptligne = 0
Local $cptactuelle = 1
Local $cptcelluleRobinson1 = 0
Local $cptcelluleRobinson11 = 0
Local $cptcelluleRobinson2 = 0
Local $Value = ""
Local $cptcelluleRobinson22 = 0
Local $cptcelluleblacklist = 0
Local $cptligneblacklist = 0
Local $cptligneactuelleR = 1
; ************************************************** ***************************
; Ouvre les Excel et compte le nombre de ligne et referme les excel
; ************************************************** ***************************
Local $sWorkbook = @ScriptDir & "\Excel1.xls"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook, Default, Default, True)
Local $nb_ligne = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oWorkbook, False)
Local $sRobinson1 = @ScriptDir & "\Robinson1.xlsx"
Local $oRobinson1 = _Excel_BookOpen($oAppl, $sRobinson1, Default, Default, True)
Local $nb_lignerobinson1 = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oRobinson1, False)
Local $sRobinson2 = @ScriptDir & "\Robinson2.xlsx"
Local $oRobinson2 = _Excel_BookOpen($oAppl, $sRobinson2, Default, Default, True)
Local $nb_lignerobinson2 = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oRobinson2, False)
; ************************************************** ***************************
; Ouverture du classeur concerné et du classeur Robinson 1
; ************************************************** ***************************
Local $sWorkbook = @ScriptDir & "\Excel1.xls"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook, Default, Default, True)
Local $sRobinson1 = @ScriptDir & "\Robinson1.xlsx"
Local $oRobinson1 = _Excel_BookOpen($oAppl, $sRobinson1, Default, Default, True)
; ************************************************** ***************************
; Check
; ************************************************** ***************************
While $cptligne <= $nb_ligne
$cptcelluleRobinson1 = "A"&$cptactuelle
$cptcelluleRobinson11 = "A"&$cptligneactuelleR
$cptcelluleRobinson111 = "B"&$cptactuelle
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
;MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson1&" ")
;MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson11&" ")
Local $sNumber = _Excel_RangeRead($oWorkbook, Default, $cptcelluleRobinson1)
;MsgBox($MB_SYSTEMMODAL, "Title",$sNumber&" ")
Local $sNumberRobinson = _Excel_RangeRead($oRobinson1, Default, $cptcelluleRobinson11)
;MsgBox($MB_SYSTEMMODAL, "Title",$sNumberRobinson&" ")
If $sNumber = $sNumberRobinson Then
_Excel_RangeWrite ($oWorkbook,"NOK",$cptcelluleRobinson111)
MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson111&" ")
_Excel_BookSave($oWorkbook)
$cptactuelle = $cptactuelle + 1
$cptligne = $cptligne + 1
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
EndIf
If $sNumber <> $sNumberRobinson Then
_Excel_RangeWrite ($oWorkbook,"OK",$cptcelluleRobinson111)
$cptligneactuelleR = $cptligneactuelleR + 1
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
EndIf
WEnd
;_Excel_BookSave($oWorkbook)
;_Excel_BookClose($oRobinson1, False)
;Local $sRobinson2 = @ScriptDir & "\Robinson2.xlsx"
;Local $oRobinson2 = _Excel_BookOpen($oAppl, $sRobinson2, Default, Default, True)
;$cptligne = 1
MsgBox($MB_SYSTEMMODAL, "Title",$nb_ligne&" ")
MsgBox($MB_SYSTEMMODAL, "Title",$nb_lignerobinson2&" ")
MsgBox($MB_SYSTEMMODAL, "Title",$cptligne&" ")
_Excel_Close($oAppl)
#include <Excel.au3>
#include <MsgBoxConstants.au3>
HotKeySet("{ESC}", "_Terminate")
; Créer un objet application
Local $oAppl = _Excel_Open()
If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;************************************************** ***************************
;Declaration des compteurs
;************************************************** ***************************
Local $cptligne = 0
Local $cptactuelle = 1
Local $cptcelluleRobinson1 = 0
Local $cptcelluleRobinson11 = 0
Local $cptcelluleRobinson2 = 0
Local $Value = ""
Local $cptcelluleRobinson22 = 0
Local $cptcelluleblacklist = 0
Local $cptligneblacklist = 0
Local $cptligneactuelleR = 1
; ************************************************** ***************************
; Ouvre les Excel et compte le nombre de ligne et referme les excel
; ************************************************** ***************************
Local $sWorkbook = @ScriptDir & "\Excel1.xls"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook, Default, Default, True)
Local $nb_ligne = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oWorkbook, False)
Local $sRobinson1 = @ScriptDir & "\Robinson1.xlsx"
Local $oRobinson1 = _Excel_BookOpen($oAppl, $sRobinson1, Default, Default, True)
Local $nb_lignerobinson1 = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oRobinson1, False)
Local $sRobinson2 = @ScriptDir & "\Robinson2.xlsx"
Local $oRobinson2 = _Excel_BookOpen($oAppl, $sRobinson2, Default, Default, True)
Local $nb_lignerobinson2 = $oAppl.ActiveSheet.UsedRange.Rows.Count
_Excel_BookClose($oRobinson2, False)
; ************************************************** ***************************
; Ouverture du classeur concerné et du classeur Robinson 1
; ************************************************** ***************************
Local $sWorkbook = @ScriptDir & "\Excel1.xls"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook, Default, Default, True)
Local $sRobinson1 = @ScriptDir & "\Robinson1.xlsx"
Local $oRobinson1 = _Excel_BookOpen($oAppl, $sRobinson1, Default, Default, True)
; ************************************************** ***************************
; Check
; ************************************************** ***************************
While $cptligne <= $nb_ligne
$cptcelluleRobinson1 = "A"&$cptactuelle
$cptcelluleRobinson11 = "A"&$cptligneactuelleR
$cptcelluleRobinson111 = "B"&$cptactuelle
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
;MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson1&" ")
;MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson11&" ")
Local $sNumber = _Excel_RangeRead($oWorkbook, Default, $cptcelluleRobinson1)
;MsgBox($MB_SYSTEMMODAL, "Title",$sNumber&" ")
Local $sNumberRobinson = _Excel_RangeRead($oRobinson1, Default, $cptcelluleRobinson11)
;MsgBox($MB_SYSTEMMODAL, "Title",$sNumberRobinson&" ")
If $sNumber = $sNumberRobinson Then
_Excel_RangeWrite ($oWorkbook,"NOK",$cptcelluleRobinson111)
MsgBox($MB_SYSTEMMODAL, "Title",$cptcelluleRobinson111&" ")
_Excel_BookSave($oWorkbook)
$cptactuelle = $cptactuelle + 1
$cptligne = $cptligne + 1
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
EndIf
If $sNumber <> $sNumberRobinson Then
_Excel_RangeWrite ($oWorkbook,"OK",$cptcelluleRobinson111)
$cptligneactuelleR = $cptligneactuelleR + 1
ToolTip("NB ligne: "&$cptcelluleRobinson1&" NB ligne robinson: "&$cptcelluleRobinson11, 0, 0)
EndIf
WEnd
;_Excel_BookSave($oWorkbook)
;_Excel_BookClose($oRobinson1, False)
;Local $sRobinson2 = @ScriptDir & "\Robinson2.xlsx"
;Local $oRobinson2 = _Excel_BookOpen($oAppl, $sRobinson2, Default, Default, True)
;$cptligne = 1
MsgBox($MB_SYSTEMMODAL, "Title",$nb_ligne&" ")
MsgBox($MB_SYSTEMMODAL, "Title",$nb_lignerobinson2&" ")
MsgBox($MB_SYSTEMMODAL, "Title",$cptligne&" ")
_Excel_Close($oAppl)
merci d'avance