Code VBA avec affichage de tous les lignes résultant de la valeur recherche

Gravite

XLDnaute Nouveau
Bonjour je viens vers vous car j'ai un code VBA qui permet d'afficher le resutat d'une valeur saisie mais pas toutes les lignes qui corresponde a cette valeur mon code VBA est :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
Set c = Range("B15:B" & Range("B65536").End(xlUp).Row).Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Range("C" & c.Row & ":N" & c.Row).Copy Destination:=Range("C5")
End If
End If
End Sub

Je voudrais donc que lorsque que je tape le résultat en B5 toutes les lignes qui correspond a cette valeur sois afficher
Si besoin d'un exemple je l'ai fournie
 

Pièces jointes

  • liste pays.xls
    290 KB · Affichages: 62

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Bienvenue sur XLD, Gravite.

Une autre façon d'agir :
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
    If c.Address = "$B$5" Then
        If c.Value <> "" Then
            Range("b14:n65000").AutoFilter Field:=1, Criteria1:=Range("b5")
        Else
            Range("b14").AutoFilter
        End If
    End If
End Sub
Le filtre est supprimé dès lors que b5 est vide.

A bientôt :)
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Gravite et bienvenue sur XLD :)

Bonsoir DoubleZero :), le Forum :)

Autre proposition sans filtrage. J'ai créé un liste déroulante en B5. Pour réafficher toutes les lignes, sélectionne C6.
 

Pièces jointes

  • liste pays.xlsm
    83.4 KB · Affichages: 64

CBernardT

XLDnaute Barbatruc
Bonjour à tous,

Bienvenue Gravite sur le forum.

J'ai remodelé ta macro évènementielle pour qu'elle face ce que tu veux.

- J'ai modifié la cellule où le N° de contrat était mis afin de libérer la zone d'affichage.
- J'ai utilisé un tableau dynamique dans lequel la seconde dimension augmente de 1 chaque fois qu'un nouveau N° de contrat est trouvé.
- L'affichage des résultats s'effectue par transposition des valeurs du tableau dans la zone d'affichage "B4:N13".

Cordialement

Bernard
 

Pièces jointes

  • Copie de liste pays.xls
    273 KB · Affichages: 45

CBernardT

XLDnaute Barbatruc
Bonjour à tous,

J'ai apporté quelques modifications après les judicieuses remarques effectuées par Lone-wolf et GCFRG.

- Une liste de validation est présente en "B2". Elle peut être mise à jour par le Bouton "MISE A JOUR..... qui met à jour la liste des N° de contrats présents dans la base dans la feuille "N° de Contrats" sans doublons ((Le filtrage des doublons est effectué à l'aide d'un dictionnaire). Un nom a été placé dans le gestionnaire des noms pour servir de source à la liste de validation.

- Le filtrage des numéros de la base est effectué par recherche et mise en tableau dynamique des numéros de contrats trouvés puis affichés par transposition des valeurs du tableau dans la zone d'affichage de la feuille "Résultats".

Cordialement

Bernard
 

Pièces jointes

  • Copie de liste pays.xls
    294.5 KB · Affichages: 51

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,
... Je viens de faire un test; même si c5 est vide, la macro fonctionne; je ne comprend pas.
Si les choix successifs concernent, par exemple :

- CM170207-0372-01 ;
- CM151217-2024-02 ;
- CM131201-9087-04 ;
- CM160115-0111-02 ;

c6 est invisible...


upload_2017-4-17_17-9-20.png


Or, tout fonctionne parfaitement si la cellule c6 est sélectionnée avant de choisir une valeur différente en b5.

A bientôt :)
 

Discussions similaires

Réponses
2
Affichages
129
Réponses
7
Affichages
292

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26