Code : Tout sélectionner
Local $search_cell = $oExcel.Columns("A:E").Find($search_keyword)si vous avez des infos a ce sujet je suis preneur, je connais assez bien autoit, mais j'en suis pas un expert non plus.
Merci..

Code : Tout sélectionner
Local $search_cell = $oExcel.Columns("A:E").Find($search_keyword)
Code : Tout sélectionner
.Find(le chiffre, Default, $xlValues, $xlWhole)

Code : Tout sélectionner
Local $search_cell = $oExcel.Columns("I:J").Find($search_keyword, Default, $xlValues, $xlWhole)

Code : Tout sélectionner
$oExcel = $oExcel.ActivesheetCode : Tout sélectionner
test ex site.au3 (15) : ==> Variable must be of type "Object".:
$oExcel = $oExcel.Activesheet
$oExcel = $oExcel^ ERROR


Poste ton code (et ton fichier excel) je vais le modifier pour répondre à ton besoin.leonick12 a écrit :ben finalement je suis completement paumé j'y arrive meme plus.
le but de la commande etait de lui faire ignorer la cellule si elle etait verte, on est pas parti dans le bon chemin je pense.


Code : Tout sélectionner
With $oExcel
.Visible = 1
_ExcelSheetActivate($oExcel, "Depenses CEMP") ;PAS BON
.ParametreX = _ExcelSheetActivate($oExcel, ... ; OK
EndWidth



en fait il ouvre le fichier texte, il recupere la premiere ligne, verifie que la ligne contient bien une operation, il recupere et modifie la valeur pour que ca corresponde avec excel, apres il la cherche dans le tableau, une fois trouvé il la met en vert, et recommencer la manip jusqua la ligne ou il trouve plus d'operation. voila tout le deroulement complet.FireFox a écrit :Plusieurs choses:
-Pour la fonction SpashTextOn, quand le paramètre est une taille/coordonnée il faut que tu passes une donnée de type nombre et non texte; par exemple 500 et non "500".
-Le With permet de travailler sur un objet, tu ne peux donc pas y insérer directement des fonctions à l'intérieur :-Je n'ai pas compris l'intérêt de ta boucle For qui fait un maximum de 50 itérations dans laquelle tu incrémentes une variable pour lire ton fichier texte, au final seulement 50 lignes max seront lues.Code : Tout sélectionner
With $oExcel .Visible = 1 _ExcelSheetActivate($oExcel, "Depenses CEMP") ;PAS BON .ParametreX = _ExcelSheetActivate($oExcel, ... ; OK EndWidth
Après c'est trop le bordel à mes yeux je préfère réécrire le code, ne t'inquiète pas je vais tout commenter.
Cdlt, FireFox.



Code : Tout sélectionner
#include <Excel.au3>
$arret=0
$arret2=0
$annee=@YEAR
; -------------------------- ouverture fichier(s)
$ligne=1
#include <Excel.au3>
Local $oExcel=_ExcelBookOpen("C:\Users\leonick\Desktop\budget.xls",1)
FileWrite("C:\Users\leonick\Desktop\CELLULES.txt","")
FileOpen("C:\Users\leonick\Desktop\CELLULES.txt",0)
FileOpen("C:\Users\leonick\Desktop\budget.txt",0)
With $oExcel
.Visible = 1
_ExcelSheetActivate($oExcel,"Depenses CEMP")
EndWith
; --------------------------- recherche le mois en cours
Select
Case @MON =1
$monthday = "janvier"
Case @MON =2
$monthday = "février"
Case @MON =3
$monthday = "mars"
Case @MON =4
$monthday = "avril"
Case @MON =5
$monthday = "mai"
Case @MON =6
$monthday = "juin"
Case @MON =7
$monthday = "juillet"
Case @MON =8
$monthday = "août"
Case @MON =9
$monthday = "septembre"
Case @MON =10
$monthday = "octobre"
Case @MON =11
$monthday = "novembre"
Case @MON =12
$monthday = "décembre"
EndSelect
Local $search_keyword = $monthday
Local $search_cell = $oExcel.Columns("A:Z").Find($search_keyword) ; ------- chercher la colonne du mois en cours
If( IsObj($search_cell) = 1 ) Then ; Si la recherche à abouti
; Local $ligne = $oExcel.Columns("A:Z").Find($search_keyword).Row
Local $colonne = $oExcel.Columns("A:Z").Find($search_keyword).Column
;$line = _ExcelReadCell($oExcel, $ligne, $colonne)
;SplashTextOn("","Colonne : "&$colonne,"300","100","50","50")
;Sleep(2000)
Else
SplashTextOn("","Pas bon","300","100","50","50")
Sleep(2000)
EndIf
$ligne=1
$ligne_cellule=12
$colonne_cellule=$colonne
For $zb = 50 To 0 Step -1
; ---------------------------------------------------------------------- recuperation ligne fichier
$valeur=FileReadLine("C:\Users\leonick\Desktop\budget.txt",$ligne)
if $valeur="" Then
FileDelete("C:\Users\leonick\Desktop\CELLULES.txt")
Exit
Else
EndIf
Local $result = StringInStr($valeur,$annee)
if $result<1 Then ; plus de ligne avec operation
$arret=$arret+1
if $arret=3 Then
Exit
Else
EndIf
Else ; ligne avec op adaptation a excel
$result = StringInStr($valeur,"-")
$result=$result+2
$valeur=StringMid($valeur, $result)
$valeur=StringReplace($valeur, "€", "")
$valeur=StringReplace($valeur, " ", "")
$resulttt = StringInStr($valeur,",00")
if $resulttt >0 Then
$valeur=StringReplace($valeur, ",00", "")
Else
EndIf
$valeur=StringReplace($valeur, ",10", ",1")
$valeur=StringReplace($valeur, ",20", ",2")
$valeur=StringReplace($valeur, ",30", ",3")
$valeur=StringReplace($valeur, ",40", ",4")
$valeur=StringReplace($valeur, ",50", ",5")
$valeur=StringReplace($valeur, ",60", ",6")
$valeur=StringReplace($valeur, ",70", ",7")
$valeur=StringReplace($valeur, ",80", ",8")
$valeur=StringReplace($valeur, ",90", ",9")
EndIf
; --------------------------------------- recherche
For $za = 50 To 0 Step -1
$line = _ExcelReadCell($oExcel, $ligne_cellule, $colonne_cellule)
$line=StringReplace($line, ".", ",")
; SplashTextOn("F"&$ligne&"C"&$ligne_cellule,"C "&$line&"F "&$valeur,"300","100","50","50")
Sleep(50)
;SplashOff()
if $line=$valeur then ; si la cellule correspond à l'operation
$valeurs=FileRead("C:\Users\leonick\Desktop\CELLULES.txt") ; fichier qui contient les lignes de cellules cochees
$result = StringInStr($valeurs,$ligne_cellule) ; verifie le fichier des cellules
if $result = 0 Then
; SplashTextOn("","ligne pas cochée","300","100","50","50")
;Sleep(1000)
;SplashOff()
; ------------------------------------------------------------------------------------- coloriage
$oExcel.ActiveSheet.Range(Chr(64 + $colonne_cellule) & $ligne_cellule).Value
With $oExcel.ActiveSheet.Range(Chr(64 + $colonne_cellule) & $ligne_cellule).Font
If Mod($ligne_cellule, 2) Then
Else
EndIf
.ColorIndex = 43
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
EndWith
FileWriteLine("C:\Users\leonick\Desktop\CELLULES.txt",$ligne_cellule) ; ajoute ligne cellule cochee
$ligne_cellule=12
$za=0
Else
; SplashTextOn("","ligne cochée","300","100","50","50")
;Sleep(1000)
;SplashOff()
EndIf
Else
If $line="" Then ; cellule vide
$arret2=$arret2+1
if $arret2=3 Then
$ligne_cellule=12
Else
EndIf
; $za=0
Else
EndIf
EndIf
$ligne_cellule=$ligne_cellule+1
if $ligne_cellule =51 Then
$ligne_cellule=12
$za=0
Else
EndIf
Next
$ligne=$ligne+1
Next
FileDelete("C:\Users\leonick\Desktop\CELLULES.txt")


Code : Tout sélectionner
If ... Then
;ton code
EndIf
Code : Tout sélectionner
If ... Then ;ton code
Code : Tout sélectionner
Local $aMois[12] = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
$monthday = $aMois[@MON -1]
