Aide - Recherche - Membres - Calendrier
Version complète : Création d'une macro de recherche sous excel
Trucs et astuces Express > Discussions Informatique > Microsoft Office 2003 / 2007 > Excel
gwad
Bonjour,

Je débute en programmation et mes connaissances étant vraiment faibles, je m'adresse à tous ceux qui seraient susceptibles de m'aider; voilà mon (gros) problème : il faut que je réalise une macro de recherche de valeurs (texte) dans un fichier excel que l'on va nommer "TOTO" pour les placer dans un fichier excel "BIBI". Je m'explique :

- j'ai dans mon fichier "BIBI" un tableau, il y a une colonne B nommée "Transaction" (la seule qui a un întérêt pour ma recherche), et 3 colonnes C, D et E étant vides...;

- j'ai un fichier "TOTO" avec un tableau (où plutôt une arborescence avec dans la colonne A "Scénario", colonne B "Process", colonne C "Etape" et colonne D "Transaction"); ce que j'entends par arborescence : par exemple: pour le scénario "TOTOFAITDUSKI" (colonne A), j'aurai 1 ou X process (colonne cool.gif, pour chaque process, j'aurai 1 ou X étape (colonne C), et à chaque étape, il y aura 0,1 ou X transactions...

Il faudrait que je créé une macro qui, comparant la colonne B de mon fichier "BIBI" (les transactions en fait...) et la colonne D de mon fichier "TOTO", répercute dans "BIBI" en colonne C le scénario associé, en colonne D le Process et en colonne E l'étape correspondant à cette transaction; sachant que dans certains cas, une même transaction peut être présente dans 1 ou plusieurs étapes ou process ou scénario de TOTO ou pas du tout...

Aussi autre chose, bien entendu les 2 tableaux ne font pas le même nombre de ligne (3200 pour le tableau A et 6700 pour le tableau cool.gif...

Voilà; j'espère que c'est assez clair malgrès le nombre d'info, sinon, n'hésitez pas à me demander d'autres information. J'ai parcouru le forum et commencé à faire quelque chose à partir de morceaux de codes que j'ai pu récupérer ça et là mais je manque cruellement de connaissances pour réaliser cette macro...
Vraiment merci par avance à tout ceux qui pourront à m'aider.

Dans un premier temps, en admettant que mon fichier cible (TOTO) ne soit pas une arborescence mais un tableau "classique", voilà ce que donne ce que j'ai créé (j'ai une erreur, voir plusieurs, au niveau de "set" et là, je bloque...):



Sub MaMacroDeRechercheAMoi()

Dim W1 As Excel.Workbook
Dim W2 As Excel.Workbook


Dim S1 as excel.worksheet

Dim S2 as excel.worksheet

Dim i, j as Integer

Set W1 = Workbooks("BIBI.xls ")
Set W2 = Workbooks("TOTO.xls ")


Set S1=W1.Sheets("Proposition BPR SGD")

Set S2=W2.Sheets("ZSGD")

S1.activate

‘S1.cells(…).select



For i=1 to 3131

For j=1 to 6846

If S1.cells(i,1).value = S2.cells(j,4).value then

S1.cells(i,6).formulaR1C1=S2.Cells(j,3).formulaR1C1

S1.cells(i,7).formulaR1C1=S2.Cells(j,2).formulaR1C1

S1.cells(i,8).formulaR1C1=S2.Cells(j,1).formulaR1C1

End if

Next j

Next i

End Sub
herve62
Bonsoir à tous , Gwad
oh la la !! il y a bcp a faire
Ici je ne pense que l'on puisse attacher un petit fichier ...dommage ( cela se fait ...??)
J'ai mis ton exemple en appli pour tester
- pas besoin de : Dim W2 As Excel.Workbook
Dim S1 as excel.worksheet ... etc

mais plutôt : Workbooks.Open ("c:\data\exceldata\TOTO.xls ") si tu travailles à partir de BIBI
(exemple de chemin)

- Recherche de dernier ligne pour eviter de mettre 6846 ...etc :


[font="Times New Roman"][/font]derligT = .Range("b65000").End(xlUp).Row ( recherche sur colonne B de BIBI)
derligB = .Range("D65000").End(xlUp).Row ( recherche sur colonne D de TOTO)

donc boucler ex : j=1 to derligT ( ou i= ... avec derligB )

- avant la boucle indiquer la feuille de travail ( donc ou est le code aussi) :
With Worksheets("Feuil1") ..... end with ( a la fin )

- valeurs : cells( j,6).value = Workbooks("TOTO.XLS").Worksheets("feuil1").cells(i,3).value ( il faut remettre le nom du "xls" d'ou viennent les données)

Ensuite cela devrait aller nettement mieux , ce n'est que de la syntaxe et du test de 'IF" d'après ce que j'ai vu

J'ai testé le début , moi je n'ai aucune erreur , et ça tourne
Bon courage

Ceci une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.