Page 1 sur 1
[R] Commande recherche chiffre dans excel
Posté : ven. 27 sept. 2013 10:41
par leonick12
bonjour, j'ai besoin de votre aide, j'ai une commande qui me permet de chercher sur une page d'excel mais le probleme c'est qu'il cherche un seul caractere il le considere pas comme un chiffre seul, voila la commande en question :
Code : Tout sélectionner
Local $search_cell = $oExcel.Columns("A:E").Find($search_keyword)
le probleme est le suivant, il cherche par exemple 2 et au final il prends le premier chiffre de la colonne genre 22 ou 20 un chiffre qui contient 2 et pareil pour 10 qui prend dans 110 ou 210.
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..
Re: [..] Commande recherche chiffre dans excel
Posté : ven. 27 sept. 2013 10:49
par FireFox
Bonjour,
Je n'utilise pas l'UDF Excel mais d'après ce que j'ai cherché cette syntaxe devrait fonctionner :
Le $xlWhole doit permettre de rechercher exactement ce que tu veux.
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 00:13
par leonick12
merci, apparemment ca a l'air de fonctionner, mais petit detail dans une liste ou il y a plusieurs fois le meme chiffre comment lui faire comprendre que c'est plus le meme, parce que en fait dans mon tableau je change la couleur des nombres trouvés mais du coup une fois fait il ne fait pas le nombre suivant, existe t'il un find qui cherche la couleur, comme ca je lui fait verifier si le nombre trouvé n'est pas deja coloré.
dans cette commande est il possible de definir une seule colonne et un nombre de ligne genre J10 à J20
Code : Tout sélectionner
Local $search_cell = $oExcel.Columns("I:J").Find($search_keyword, Default, $xlValues, $xlWhole)
pour une fois que je peut poser des questions, parce que d'habitude je galere tres souvent avant de trouver une solution et encore quand je la trouve.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 17:03
par FireFox
J'ai dû mettre la main à la pâte pour trouver comment ça marchait.
Je t'ai fait un exemple :
► Afficher le texte
Code : Tout sélectionner
#include <Excel.au3>
; tableau excel:
; A B
; 1 0 4
; 2 1 2
; 3 4 1
; 4 2 4
; 5 3 1
; on cherche la 2ème occurence du chiffre 2
; il faut donc partir de la 3ème ligne puisque la 1ere occurence est à la 2ème ligne
Local $oExcel = _ExcelBookAttach("Classeur1", "filename") ; Nouveau fichier excel NON enregistré
$oExcel = $oExcel.Activesheet
; départ x, départ y; fin x, fin y
Local $aRange[2][2] = [[1, 3], [2, 5]]
Local $oFind = $oExcel.Columns("A:B").Range($oExcel.Cells($aRange[0][1], $aRange[0][0]), $oExcel.Cells($aRange[1][1], $aRange[1][0])).Find("2", Default, $xlValues, $xlWhole)
ConsoleWrite("x: " & $oFind.Column & ", y: " & $oFind.Row & @CrLf)
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 17:32
par leonick12
bonjour, il y a un erreur a cette ligne :
l'erreur :
Code : Tout sélectionner
test ex site.au3 (15) : ==> Variable must be of type "Object".:
$oExcel = $oExcel.Activesheet
$oExcel = $oExcel^ ERROR
j'avoue ne pas trop comprendre...
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 17:41
par FireFox
Bizarre, moi ça marche sous Excel 2010, sinon enleve la ligne.
Tu peux aussi reprendre ton objet oExcel, puisque t'as juste posté une ligne de ton code fallait bien que je re-construise un exemple complet.
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 18:12
par leonick12
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.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 18:18
par FireFox
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.
Poste ton code (et ton fichier excel) je vais le modifier pour répondre à ton besoin.
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 18:26
par leonick12
voila comme tu m'as demander le code et les fichiers qui vont avec..
Merci encore.
code :
► Afficher le texte
Code : Tout sélectionner
$ligne=1
#include <Excel.au3>
Local $oExcel=_ExcelBookOpen("C:\Users\leonick\Desktop\budget.xls",1)
FileOpen("C:\Users\leonick\Desktop\budget.txt")
For $zb = 50 To 0 Step -1
$valeur=FileReadLine("C:\Users\leonick\Desktop\budget.txt",$ligne)
Local $result = StringInStr($valeur,"€")
if $result<1 Then
Exit
Else
EndIf
;$valeur="23/09/2013 Cb Centre Leclerc Fact 210913 - 5,00 €"
$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")
SplashTextOn($ligne,$valeur,"300","100","50","50")
sleep(1000)
SplashOff()
With $oExcel
; .SheetsInNewWorkbook = 1
.Visible = 1
; .WorkBooks.Add
;.ActiveWorkbook.Worksheets(1).Name = "Feuil2"
_ExcelSheetActivate($oExcel,"Depenses CEMP")
; .ActiveWorkbook.Worksheets(1).Cells(1,1) = "I believe i can fly !!!"
EndWith
; Recherche
Local $search_keyword = $valeur
Local $search_keyword2 = "Depenses CEMP"
Local $search_cell = $oExcel.Columns("I:J").Find($search_keyword, Default, $xlValues, $xlWhole)
Local $search_cell2 = $oExcel.Columns("A:B").Find($search_keyword2, Default, $xlValues, $xlWhole)
;Local $search_cell = $oExcel.Columns("I:J").Find($search_keyword)
;Local $search_cell2 = $oExcel.Columns("A:B").Find($search_keyword2)
If( IsObj($search_cell) = 1 ) Then ; Si la recherche à abouti
Local $test = $oExcel.Columns("I:J").Find($search_keyword).Row
Local $test2 = $oExcel.Columns("I:J").Find($search_keyword).Column
$line = _ExcelReadCell($oExcel, $search_cell.Row, $search_cell2.Column)
$i=$test2+0
$j=$test+0
;SplashTextOn("",$test&" "&$test2,"300","100","50","50")
;sleep(2000)
$oExcel.ActiveSheet.Range(Chr(64 + $i) & $j).Value
With $oExcel.ActiveSheet.Range(Chr(64 + $i) & $j).Font
If Mod($j, 2) Then
Else
EndIf
.ColorIndex = 43
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
EndWith
;_ExcelBookSave($oExcel)
;sleep(2000)
;_ExcelBookClose($oExcel)
Else
;sleep(2000)
;_ExcelBookClose($oExcel)
EndIf
$ligne=$ligne+1
Next
FileClose("C:\Users\leonick\Desktop\budget.txt")
; _ExcelBookClose($oExcel)
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 18:53
par FireFox
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 :
Code : Tout sélectionner
With $oExcel
.Visible = 1
_ExcelSheetActivate($oExcel, "Depenses CEMP") ;PAS BON
.ParametreX = _ExcelSheetActivate($oExcel, ... ; OK
EndWidth
-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.
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.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 19:01
par FireFox
Y'a même mieux à faire, si tu pouvais expliquer en détail tout ce que tu souhaites faire histoire que je rédiges le code...
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 19:07
par leonick12
mon script ce sert des donnes du compte recuperer sur le net et mis dans un fichier texte, je lit ce fichier et valide les operations sur le tableau excel en vert car la macro du fichier excel detecte les couleurs et fait varier tout mes tableaux du fichier complet en fonction de ca, tu verras dans le fichier que j'ai donner la macro est presente justement.
hesite pas pour toutes infos.
Re: [..] Commande recherche chiffre dans excel
Posté : sam. 28 sept. 2013 19:36
par leonick12
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 :
Code : Tout sélectionner
With $oExcel
.Visible = 1
_ExcelSheetActivate($oExcel, "Depenses CEMP") ;PAS BON
.ParametreX = _ExcelSheetActivate($oExcel, ... ; OK
EndWidth
-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.
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.
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.
Re: [..] Commande recherche chiffre dans excel
Posté : dim. 29 sept. 2013 12:45
par leonick12
voila j'ai trouvé la solution, ca marche super bien et je peut definir exactement la colonne et ligne que je veut.
c'est pas tres mega code, mais bon c'est de la bidouille, je fait avec ce que je connais.
► Afficher le texte
Code : Tout sélectionner
#include <Excel.au3>
$arret=0
$arret2=0
; -------------------------- 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
$ligne=1
$ligne_cellule=12
$colonne_cellule=9
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,"2013")
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(100)
;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")
Re: [..] Commande recherche chiffre dans excel
Posté : dim. 29 sept. 2013 13:17
par FireFox
Il manque le fichier Cellules dans ce cas.
C'est pas assez détaillé mais je verrai si j'arrive à comprendre.
Re: [..] Commande recherche chiffre dans excel
Posté : dim. 29 sept. 2013 13:41
par leonick12
le fichier cellules ne manquent pas il se creer avec la lecture du tableau
voila la version complete et niquel pour le tableau depenses, ca tiens compte de l'annee pour les op ainsi que du mois sur le tableau, ca evite de rester tout le temps sur le meme mois.
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")
Re: [..] Commande recherche chiffre dans excel
Posté : dim. 29 sept. 2013 16:47
par FireFox
Tu aurais pu au moins appliquer mes remarques dans la modification de ton script.
Ce n'est pas grave, mais tu n'as toujours pas expliqué ce que fais ton script; ce que j'ai compris c'est qu'il va comparer les prix aux cellules et si le prix n'est pas répertorié dans le fichier cellules alors il recommence au début (là j'ai pas compris pourquoi) sinon il met la cellule en vert.
Y'a pas mal de points à éclaircir.
PS: y'a pas de macros dans le fichier excel.
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : dim. 29 sept. 2013 18:18
par leonick12
Le fichier texte contient simplement les operations du compte qui sont recuperer plus tot avec une autre manip, apres 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
Apres pour les manips desole, tout le reste fonctionner deja donc j'ai juste rajouter ce qui me manquer.
Re: [..] Commande recherche chiffre dans excel
Posté : lun. 30 sept. 2013 19:09
par FireFox
On va revenir juste à la fonction find pour que tu puisses rajouter à ton script ce que tu souhaites.
Ce que j'avais trouvé était un peu fouillis, il s'avère qu'on peut utiliser range avec les coordonnées alpha-numériques.
Ouvre un nouveau fichier excel et lance ce nouvel exemple :
► Afficher le texte
Code : Tout sélectionner
#include <Excel.au3>
; on cherche la 2ème occurence du chiffre 2
; il faut donc partir de la 3ème ligne puisque la 1ere occurence est à la 2ème ligne
Local $oExcel = _ExcelBookAttach("Classeur1", "filename") ; nouveau fichier excel NON enregistré
; tableau excel:
; A B
; 1 0 4
; 2 1 2
; 3 4 1
; 4 2 4
; 5 3 1
Local $aTableau1[5] = [0, 1, 4, 2, 3]
Local $aTableau2[5] = [4, 2, 1, 4, 1]
_ExcelWriteArray($oExcel, 1, 1, $aTableau1, 1)
_ExcelWriteArray($oExcel, 1, 2, $aTableau2, 1)
Local $oFind = $oExcel.Activesheet.Range("A3:B5").Find("2", Default, $xlValues, $xlWhole)
ConsoleWrite("x: " & $oFind.Column & ", y: " & $oFind.Row & @CrLf)
$oFind.Font.ColorIndex = 43
Comme tu peux le voir j'ai remplacé Columns par range, pour spécifier sur quelle plage je veux effectuer ma recherche, si la 1ère occurence se trouve à la ligne 2 alors je vais commencer à 3 (ici A3).
Conseils pour ton script: Les Else sont inutiles si il n'y a rien dans le Else donc tu peux écrire :
Et si ton code dans le If ne fait qu'une seule ligne tout simplement :
Après il y a pleins d'améliorations à faire et corrections.
Par exemple lorsque tu ouvres un fichier avec FileOpen il faut fermer le handle par un FileClose.
Les incrémentations $ligne = $ligne+1 par $ligne += 1
Bref, lis bien le manuel d'aide pour les fonctions que tu utilises.
Edit: Tu peux remplacer ton Select par:
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]
Cdlt, FireFox.
Re: [..] Commande recherche chiffre dans excel
Posté : lun. 30 sept. 2013 21:58
par leonick12
oui c'est sur que t'a plus l'habitude que moi, moi j'ai beau connaitre autoit depuis quelques annees, j'ai pris les mauvaises habitudes et surtout j'ai pas chercher plus simple, je part du principe que ca marche donc j'avoue ne pas me compliquer plus, mais j'ai fait une version definitive qui est parfaite tiens compte du mois de l'annee des cases cochees ou non et aussi reparti les operations sur les feuilles en fonction des donnees de l'operation, mais je vais tester certains de tes trucs. encore merci, c'est plutot rare un bon dialogue sur les forums.