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

prob. macro recherche

  • Initiateur de la discussion Initiateur de la discussion donpopo
  • 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 !

donpopo

XLDnaute Occasionnel
Bonjour le forum,

Je cherche à créer une macro qui me permettrait de rechercher dans une feuille les lignes correspondants à un nom de client précis ET de les afficher dans une autre feuille.

Je tape un nom de client dans une cellule de la feuille1 et, en-dessous, je souhaite voir s'afficher toutes les lignes concernant ce client (lignes reprises sur la feuille2 et représentant les ventes d'une certaine période pour l'ensemble des clients).

Ci-joint un fichier pour mieux comprendre.

Merci de m'aider.

Donpopo
 

Pièces jointes

Re : prob. macro recherche

bonjour donpopo

voici un "code de recherche" à coller sur la feuille "Feuil1" (clic droit sur l'onglet --> Visualiser le code)

il s'exécute à chaque changement de "client" en F3 et met la liste à jour.

Code:
'macro qui se lance à chanque changement d'une cellule dans la feuille
'Target représente la cellule qui vient de changer
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche As Range, premAdresse As String
    
    'si ce n'est pas la cellule F3 qui vient du changer, quitter la macro
    If Not Target(1, 1).Address = "$F$3" Then Exit Sub
    
    'nettoyer la zone d'affichage de la racherche
    Range(Range("B6"), Range("B6").End(xlDown)).Resize(, 7).ClearContents
    
    With ThisWorkbook.Sheets("Feuil2")
        'lancer la recherche
        Set cellRecherche = .Columns("B").Find(Target.Text, , xlValues, xlWhole, , , False)
        'si rien n'est trouvé, quitter la macro
        If cellRecherche Is Nothing Then Exit Sub
        premAdresse = cellRecherche.Address
        Do
            'copier la ligne dans "Feuil1"
            cellRecherche.EntireRow.Copy Range("B" & Rows.Count).End(xlUp).Offset(1, -1)
            'chercher la cellule suivante
            Set cellRecherche = .Columns("B").FindNext(cellRecherche)
        Loop Until cellRecherche.Address = premAdresse
    End With
End Sub

a+
 
Re : prob. macro recherche

Merci mromain,

c'est exactement ce que je cherche.

Mais, petit problème: lorque je vide la cellule "F3", la macro tourne en boucle. Y aurait il un moyen de combler ce petit problème?

Merci d'avance

Donpopo
 
Re : prob. macro recherche

re,

essaye avec ce code :
Code:
'macro qui se lance à chanque changement d'une cellule dans la feuille
'Target représente la cellule qui vient de changer
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche As Range, premAdresse As String
    
    'si ce n'est pas la cellule F3 qui vient du changer, quitter la macro
    If Not Target(1, 1).Address = "$F$3" Then Exit Sub
    
    'nettoyer la zone d'affichage de la racherche
    Range(Range("B6"), Range("B6").End(xlDown)).Resize(, 7).ClearContents
    
[B]    'si la cellule est vide, quitter la macro
    If Target.Text = vbNullString Then Exit Sub
[/B]    
    With ThisWorkbook.Sheets("Feuil2")
        'lancer la recherche
        Set cellRecherche = .Columns("B").Find(Target.Text, , xlValues, xlWhole, , , False)
        'si rien n'est trouvé, quitter la macro
        If cellRecherche Is Nothing Then Exit Sub
        premAdresse = cellRecherche.Address
        Do
            'copier la ligne dans "Feuil1"
            cellRecherche.EntireRow.Copy Range("B" & Rows.Count).End(xlUp).Offset(1, -1)
            'chercher la cellule suivante
            Set cellRecherche = .Columns("B").FindNext(cellRecherche)
        Loop Until cellRecherche.Address = premAdresse
    End With
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

Discussions similaires

Réponses
10
Affichages
567
Réponses
16
Affichages
1 K
D
  • Question Question
Réponses
5
Affichages
250
Didierpasdoué
D
Réponses
18
Affichages
1 K
Réponses
5
Affichages
402
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…