Rechercheh par macro

P

Pierrot

Guest
Bonjour à toutes et à tous.
Voilà mon problème : j'ai une macro qui me créée automatiquement une nouvelle feuille, la nomme du nom que je lui indique. Sur une feuille recap le nom de la feuille s'inscrit automatiquement en A3. je souhaite en b3 faire par macro une rechercheh par rapport au nom de a3. j'ai essayé par l'enregistreur mais hélas ça ne marche pas. Si quelqu'un peu m'aider, je le remercie d'avance. :sick:
 

adebrux

XLDnaute Occasionnel
salut Pierre,

Qu'est ce que tu veut faire exactement comme recherche???
Une recherche H, V, recherche normale???

Si tu utilise une recherche normale, tu peux essayé le code suivant:
Code:
sheets('recap').cells(3,2).formulaR1C1= '=LOOKUP(RC[-1],range('vecteur_recherche'),range('vecteur_résultat'))'

Place aux explication

Cells(3,2) c'est ta cellule B3
RC[-1] c'est ta cellule A1 (en effet c'est sur la même ligne:R, et une colonne avant: C[-1] )
ensuite, il faut que tu indique ton vecteur recherche, c'est à dire la zone de cellule dans laquelle tu dois trouver la valeur que tu as en A3
le vecteur résultat est le vecteur contenant ce que tu cherche exactement.

Par exemple, je cherche le prix d'un matériaux.
En A3 je vais mettre mon matériaux
le vecteur recherche sera la colonne contenant le nom des matériaux
le vecteur résultat sera la colonne avec les prix de ces matériaux.
CF fichier joint pr exemple sur la fonction.

j'espère que ca t'aidera

Bon courage
Arnaud [file name=exemple_recherche.zip size=4194]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_recherche.zip[/file]
 

Pièces jointes

  • exemple_recherche.zip
    4.1 KB · Affichages: 52
P

Pierrot

Guest
Merci ARnaud pour ton aide ; j'y vois un petit peu plus clair. En fait, la feuille sur laquelle je vais effectuer ma recherche est créée par une macro, cette même macro indique le nom de la feuille en A4 et mon souci est d'indiquer automatiquement dans ma formule le nom de la feuille nouvellement créée. je joins le code de ma macro pour plus de clareté.
Sub CREERFEUILLE()
'
' CREERFEUILLE Macro
' Macro enregistrée le 10/12/2005 par PTFX
'
'Saisir le nom de la personne et créer la feuille de congés
maFeuil = InputBox(Prompt:='Taper le nom de la feuille à créer. EX : VAILLANT Michel ')
Sheets('MODELE').Select
Sheets('MODELE').Copy Before:=Sheets(3)
Sheets('MODELE (2)').Select
Sheets('MODELE (2)').Name = maFeuil
'Indiquer le nom de la personne sur la feuille
Range('i1').Select
ActiveCell.Value = maFeuil
'Ajouter la personne à la liste des individus
Sheets('ENTETE').Select
[A65536].Select
Selection.End(xlUp)(2).Select
ActiveCell.Value = maFeuil
'Créer le lien hypertexte vers la feuille de congés
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:='', SubAddress:= _
''' & maFeuil & ''!A1', TextToDisplay:=maFeuil
'Classer alphabétiquement la liste des personnes
Range('A3:A300').Select
Selection.Sort Key1:=Range('A3'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range('A1').Select
'Ajouter la personne sur la récap
Sheets('RECAPITULATION').Select
Rows('5:5').Select
Selection.Insert shift:=xlDown
Range('a5').Value = maFeuil
Range('A5:A300').Select
Selection.Sort Key1:=Range('A3'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range('a1').Select
ActiveCell.FormulaR1C1 = '=HLOOKUP(R[-1]C,MODELE!R[23]C:R[37]C[16],15,FALSE)'
Range('B6').Select
Sheets('ENTETE').Select
Range('a1').Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 418
Membres
103 205
dernier inscrit
zch