VBA - Rechercher référence dans une autre feuille

wizard0147

XLDnaute Occasionnel
Bonjour à tous,

J’ai développé sur Excel une base de données se trouvant sur la feuille « Database ». Sur une feuille différente nommée « Home », j’essaye de faire apparaitre les caractéristiques des produits qui se trouvent dans le tableau de la feuille « Database ».

Imaginons que je souhaite rechercher dans la base de données la référence « XXX ».
Je rentre cette référence en Home !C9. Je souhaite recherche cette référence dans la base de données , sélectionner la ligne qui correspond, la copier et la coller sur la feuille « Home ». J’ai donc fait ceci :

Range("C9").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Database").Select
Columns("A:A").Select
Selection.Find(What:="Home!$C$9", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Seulement, comme vous vous en doutez « Home!$C$9 » ne marche pas.
De plus, comment sélectionner la ligne qui correspond à celle où se trouve la référence recherchée ?

J'ai également pensé à la formule DECALER comme en fait je n'ai pas besoin de toute la ligne mais seulement des 10 premières valeurs.

J’espère être suffisamment clair.
Merci pour vos réponses.
 

Catrice

XLDnaute Barbatruc
Re : VBA - Rechercher référence dans une autre feuille

Bonjour,

essaie ceci :

Selection.Find(What:=sheets("Home").range("$C$9"), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Tu dois pouvoir eviter les Activate et Select ...
 
Dernière édition:

wizard0147

XLDnaute Occasionnel
Re : VBA - Rechercher référence dans une autre feuille

Encore merci Catrice :)

Je cherche maintenant à sélectionner la ligne correspondante et à la copier ou encore mieux, à seulement copier les 10 cellules suivantes sur la même ligne. Des idées ? :p
 

Catrice

XLDnaute Barbatruc
Re : VBA - Rechercher référence dans une autre feuille

Re,

A tester :

Set c = Selection.Find(What:=sheets("Home").range("$C$9"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart)
c.Resize(1,10).Copy Sheets("Destination").Range("A1")
 

wizard0147

XLDnaute Occasionnel
Re : VBA - Rechercher référence dans une autre feuille

Bon, après modification, j'arrive à ça :


Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$9" Then
Sheets("Database").Select
Columns("A:A").Select
Set c = Selection.Find(What:=Sheets("Home").Range("$C$9"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart)
c.Resize(1, 14).Copy

Sheets("Home").Select

With Range("C12")
.PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With

End Sub

Malheureusement, Excel trouve une erreur et surligne "Columns("A:A").Select" :(

Par contre, lorsque je tape le même code dans une macro comme ci-dessous, ça marche :confused:

Sheets("Database").Select
Columns("A:A").Select
Set c = Selection.Find(What:=Sheets("Home").Range("$C$9"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart)
c.Resize(1, 14).Copy

Sheets("Home").Select

With Range("C12")
.PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 785
Messages
2 092 075
Membres
105 182
dernier inscrit
alexandre.guilhem