[HELP] Script d'automation de doublon

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
DarknessSBS
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 29 mars 2017 17:42
Status : Hors ligne

[HELP] Script d'automation de doublon

#1

Message par DarknessSBS »

Bonjour à toutes et à tous,

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)
quelqu'un pourrais m'aider s'il vous plait ?

merci d'avance
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [HELP] Script d'automation de doublon

#2

Message par ZDS »

Salut,

Je t'aurais bien aidé, mais sans les fichiers XLS de base (Excel1.xls, Robinson1.xlsx, Robinson2.xlsx), je ne peux rien faire... ^^

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
DarknessSBS
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 29 mars 2017 17:42
Status : Hors ligne

Re: [HELP] Script d'automation de doublon

#3

Message par DarknessSBS »

c'est simple tu peux créer 3 fichiers excel avec le meme nom et tu mets n'importe quelle donnée sur les cellules de la colonne A.

et pour faire rentrer dans le IF copie la cellule A1 de ton tableau excel1.xls dans ton robinson1.xlsx pour que celle si soit identique.

malheureusement, je ne peux fournir les fichiers originaux vu que c'est des fichiers confidentielles.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [HELP] Script d'automation de doublon

#4

Message par mikell »

AMHA la suggestion implicite de ZDS était que TU crées les fichiers d'exemple et que TU les joignes à ton script - histoire de ne pas décourager les bonnes volontés :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [HELP] Script d'automation de doublon

#5

Message par ZDS »

Pardon, je voulais dire "sans des fichiers XLS de base, je ne trouverai pas le courage de t'aider", car perdre du temps à imaginer le contexte de ton code n'est pas très engageant pour la personne qui cherche à te donner un coup de main. Ce n'est pas grave si les données originales sont confidentielles, mais propose tout de même en pièce jointe un jeu de données basique mais compatible avec ta demande (genre une liste de clients peut se limiter à des Toto/titi/tata, ou aux personnages de ton film fétiche ou ta série TV préférée comme ma chérie qui met du Martin Riggs, du Bob Kelso et des John Dorian dans tous ses designs pour Orange Labs ^^).

En effet des choses tout à fait triviales pour toi peuvent l'être moins pour un autre. Exemple vécu dans le cadre du boulot :
- J'ai besoin d'un tableau avec des tris.
- Voila une version du code.
- En fait, c'est à trois dimensions.
- Je vais le refaire...
- Ah mais non, là c'est une chaîne de caractères, pas des chiffres !
- Je vais le refaire...
- Euh, sauf cette colonne là, ça c'est des chiffres mais dans le sens décroissant ça serait bien.
- Je vais le refaire...
- Il manque la prise en compte d'un second champ si il y a des égalités.
- Tu vas te faire... ^^

Bref, tu m'auras compris ! Dès que les XLS sont là, je atèle à ton souci.

PS: Merci Mikell, c'est vrai que je n'avais pas été clair, mais c'est exactement ce que tu as pensé :)
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Répondre