Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche sur un tableau

  • Initiateur de la discussion Initiateur de la discussion steph30
  • Date de début Date de début

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 !

S

steph30

Guest
Bonjour,

Je me suis fais un petit fichier mais je coince sur une macro. Etant totalement novice, je fais mes macros de bric et de broc au fur et à mesure de mes navigations sur des forums mais là rien à faire je trouve pas.

Alors je souhaite faire une recherche dans toute ma feuille "table" d'une valeur contenu dans la cellule C3 de ma feuille "consultation" et donc afficher toutes les lignes où ma valeur est.

Ci joint un exemple édulcoré de la structure du tableau

Est ce que quelqu'un peut m'aider, s'il vous plait ?
 

Pièces jointes

Re : recherche sur un tableau

Bonsoir steph30,

Voici un code que tu pourras adapter au besoin.
Note : le code s'exécute quand il y a un changement dans la cellule C3 que j'ai nommé "NoProduit". La recherche se fait dans toutes les colonnes de ton onglet "Table". Si nécessaire, tu peux limiter les recherches uniquement dans les colonnes avec les NoProduit mais il faudrait adapter un peu la macro.

A+
 

Pièces jointes

Re : recherche sur un tableau

Par contre il y a un petit bug.

Quand on supprime la valeur de la cellule cible, toutes les lignes du tableau se recopie en 11 fois.

Tu aurais une idée ?
 
Re : recherche sur un tableau

Bonjour,

Effectivement ça marche beaucoup mieux comme ça 😀 Merci beaucoup

Par contre, je suis désolée j'abuse un peu, est ce qu'il est possible de modifier le code de façon à ce que quand il n'y a plus rien dans la cellule cible les cellules du tableau se vident ?

Merci encore une fois et merci d'avance pour cette modif.
 
Re : recherche sur un tableau

Bonjour à tous,

Avec le code de notre ami :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False 'évite de raffraîchir continuellement
If Intersect(Target, [NoProduit]) Is Nothing Then Exit Sub
If Not Intersect(Target, [NoProduit]) Is Nothing And [NoProduit] <> "" Then
Sheets("Consultation").Range("A7:O20000").ClearContents 'Vider le tableau de résultats
With ThisWorkbook.Sheets("Table").Range("A1:O20000") 'plage de recherche
Set Produit_Cherché = .Find([NoProduit], lookat:=xlWhole)
If Not Produit_Cherché Is Nothing Then
firstAddress = Produit_Cherché.Address
Do
Lastrow = ThisWorkbook.Sheets("Consultation").Range("A60000").End(xlUp).Row + 1 'ligne où écrire
Sheets("Table").Range("A" & Produit_Cherché.Row & ":O" & Produit_Cherché.Row).Copy Destination:=Sheets("Consultation").Range("A" & Lastrow) 'copie de la ligne
Set Produit_Cherché = .FindNext(Produit_Cherché)
Loop While Not Produit_Cherché Is Nothing And Produit_Cherché.Address <> firstAddress
End If
 
End With
End If
If Not Intersect(Target, [NoProduit]) Is Nothing And [NoProduit] = "" Then Sheets("Consultation").Range("A7:O20000").ClearContents 'Vider le tableau de résultats si C3 est vide
Application.ScreenUpdating = True
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…