je bloque aujourd'hui bêtement sur quelque chose d'étrange ?!
Le code est ci-dessous, je vous explique auparavant ce que je veux faire.
De même, vous trouverez un fichier Excel joint.
(Je précise que le script Autoit sera lancé depuis un raccourci clavier directement sur la page Excel déjà ouverte).
Je veux lire chaque ligne de la première colonne de mon fichier Excel.
Pour chacune des lignes, je récupère la valeur de la cellule.
Donc je récupère A1, A2, A3, A4...
Pour chacune des valeurs, je planifie dans un Select case quelles colonnes de la ligne je dois cocher.
Pour certaines lignes, 0, pour d'autres, au maximum 3.
Pour cela, je compare chaque cellule avec mon Case.
Or, c'est comme si je pissais dans un violon.
Quand j'affiche le contenu de la cellule (ma variable donc) avec un msgbox, tout va bien,
mais AI ne semble pas comparer du tout ?!
J'ai tenté avec un StringStripCR, au cas où Excel rajouterait des choses que je ne vois pas ?!
Le problème selon moi se situe dans la fonction ListeValeursCellule($sCellule)
Merci d'avance pour votre aide, je me sens idiot comme pas permis ?!
Par contre, je ne souhaite pas utiliser l'UDF Excel, si vous pensiez m'orienter dessus
Code : Tout sélectionner
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
#include <StringConstants.au3>
#include <Clipboard.au3>
Func LireContenuCellule()
Sleep(1000)
Send("^c")
Sleep(1000)
Dim $sCellule = ClipGet()
return $sCellule
EndFunc
Func ListeValeursCellule($sCellule)
msgbox (0,"Entrée dans fct ListevaleursCellule",$sCellule)
Select
Case stringcompare($sCellule,"Catégorie")
msgbox (0,"0Function Listevaleurs",$sCellule)
msgbox (0, "Stringcompare", "marche pour Catégorie")
Case stringcompare($sCellule,"Assurance Hab")
msgbox (0,"1Function Listevaleurs",$sCellule)
msgbox (0, "Stringcompare", "marche pour Assurance Hab")
;Cocher colonnes 9 & 12
EndSelect
EndFunc
Func AllerPremiereColonne()
EndFunc
Func CocherColonne ($nNumColonne1, $nNumColonne2, $nNumColonne3)
Sleep(800)
For $nNumColonne = 1 to $nNumColonne1
Send ("{RIGHT}")
Next
Send("X")
Sleep(500)
For $nNumColonne = $nNumColonne to $nNumColonne2
Send ("{RIGHT}")
Next
Send("X")
Sleep(500)
If $nNumColonne3 <> 0 Then
For $nNumColonne = $nNumColonne to $nNumColonne3
Send ("{RIGHT}")
Next
Send("X")
Sleep(500)
EndIf
EndFunc
;epargne virement interne ponctuel recurrent non rep exc sur rec incompressible
Func DescendreLigneSuivante ()
Send("{DOWN}")
EndFunc
Func Main()
Sleep(1500)
_ClipBoard_Empty()
Dim $sCellule = LireContenuCellule()
for $i = 0 to 2 Step 1
Sleep(1500)
;msgbox (0, "Fct Main",$sCellule)
Sleep(1500)
ListeValeursCellule($sCellule)
Sleep(1500)
DescendreLigneSuivante()
;debugging msgbox (0, $sCellule,$sCellule)
$sCellule = LireContenuCellule()
;a changer en boucle do while qd prob regle : Until StringCompare ($sCellule, "Total")
;debugging msgbox (0, "cellule enregistree dans fonction Main", $sCellule)
Next
EndFunc
Main()