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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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:
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 ? 😛
 
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 😕

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour