Recherche V? Peut etre !

lienad

XLDnaute Occasionnel
Bonjour à tous ,

Je tente briévement d'expliquer la situation qui m'amène à vous solliciter .
Sur une feuille, j'ai une liste de clients classés par numéro.
Sur une feuille 2 j'aimerais après avoir choisi un client, un récapitulatif de sa situation . Recherchev est-elle adaptée à ma demande ?
Le fichier joint, un ex volontairement simplifié facilitera la compréhension .
Merci de votre concours .
 

Pièces jointes

  • question recherche.xls
    14 KB · Affichages: 55

Tibo

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Bonjour,

Une solution avec une formule matricielle :

en B4 :

Code:
=SI(LIGNE()-3>NB.SI(Feuil1!$A$3:$A$50;$B$1);"";INDEX(Feuil1!B$1:B$50;
PETITE.VALEUR(SI((Feuil1!$A$3:$A$50=$B$1)*LIGNE($A$3:$A$50)<>0;
(Feuil1!$A$3:$A$50=$B$1)*LIGNE($A$3:$A$50));LIGNE()-3)))

Formule matricielle à valider par CTRL + MAJ + ENTREE

à recopier vers la droite et vers le bas

Plages de cellules à adapter

@+
 

Cousinhub

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Bonjour,

Bonjour Tibo :)

une solution par macro..

Lorsque tu cliques sur la cellule A2, tu as une liste de validation qui te propose tout tes numéros de clients....

Si tu modifies le numéro, tu obtiens toutes ses données...
 

Pièces jointes

  • question recherche_v1.xls
    29 KB · Affichages: 49

bcharef

XLDnaute Accro
Re : Recherche V? Peut etre !

Bonjour lienad, Tibo & bhbh,
Bonjour à toutes et à tous.

Un essai par un TCD.

A vous lire et bon courage.

Cordialement.

BCharef.
 

Pièces jointes

  • TCDquestion recherche.xls
    13 KB · Affichages: 43

lienad

XLDnaute Occasionnel
Re : Recherche V? Peut etre !

Bonsoir,

Merci pour vos contributions variées !

Il me faut choisir et aussi comprendre .
Alors première question à Tibo . Comment est définie la plage de cellules,et que signifie ()-3 .

bhbh , je pratiques très peu les macros, la solution est convaincainte mais cela me semble difficile pour que je puisses la personnaliser .

Si je peux espérer quelques explications .
 

Cousinhub

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Re-,

les codes commentés :

Code:
Private Sub Worksheet_Activate()
[A1].Select 'lorsque tu actives cette feuille, tu sélectionnes la cellule A1
    'ceci afin de recréér une liste de validation quand tu sélectionnes A2
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then 'si la cellule modifiée est A2
    Sheets("Feuil1").Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "A1:A2"), CopyToRange:=Range("B3:D3"), Unique:=False
    'Filtre élaboré de ta base de données, le critère en A2, et l'extraction en B3:D3
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ListClients As Object 'déclaration des variables
Dim DerLig As Long
Dim Cel As Range
If Target.Address = "$A$2" Then 'si tu as sélectionné la cellule A2
    Set ListClients = CreateObject("Scripting.Dictionary") 'création d'un objet Dictionnary
    With Sheets("Feuil1") 'avec la feuille "Feuil1"
        DerLig = .[A65000].End(xlUp).Row 'calcul de la dernière ligne remplie
        .Range("A2:D" & DerLig).Name = "base" 'on nomme la zone de travail
                'ici de A2 à D13
                'si le tableau va jusqu'à la colonne F, remplace le D par F
        For Each Cel In .Range("A3:A" & DerLig) 'pour toutes les cellules de la colonne A
            ListClients.Item(Cel.Value) = Cel.Value 'on rajoute les valeurs dans l'objet, de façon unique
        Next Cel
    End With
    For Each it In ListClients.items 'on liste tous les numéros de clients
        tmp = tmp & "," & ListClients.Item(it) 'on les rentre dans un tableau
    Next it
    tmp = Right(tmp, Len(tmp) - 1) 'on supprime la première virgule
    With Target.Validation 'on va créé la liste de validation
        .Delete 'tout d'abord, on supprime l'ancienne
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=tmp
        'puis on rajoute une nouvelle, avec les numéros de clients
    End With

End If
End Sub
 

mehari2000

XLDnaute Nouveau
Re : Recherche V? Peut etre !

salut a tous,

j'avais un soucis avec les recherches (V ou H ...)
c'est qu'il fallait que la colonne soit triée pour rechercher
j'ai fait une petite fonction pour rechercher sans trier et afficher le resultat


Function recher(nb_a_tester, tableau As Range, index)
With Range(tableau.Address)
Set c = .Find(nb_a_tester, LookIn:=xlValues)
If Not c Is Nothing Then
recher = Range(c.Address).Offset(0, index).Range("A1")
End If
End With
End Function


nb_a_test est la case où est le nb a chercher ou le nom
tableau c'est l'endroit ou on le cherche
index est le nb de cases qui séparent la case a afficher sur la meme ligne( 2 pour deux cases a droite et -2 pour deux a gauche)

si ça peut aider !

a+
stef
 

Tibo

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Bonjour,

Comment est définie la plage de cellules :

J'ai défini par défaut la plage suivante : $A$3:$A$50

Il faut ajsuter à ton vrai fichier. Si le nombre de lignes peut varier de façon importante, il est possible de nommer de façon dynamique cette plage de cellules avec la fonction DECALER

et que signifie ()-3 :

le -3 est dû au fait que ton tableau se remplit à partir de la ligne 4. Donc LIGNE()-3 donne 1 pour la 1ère ligne, 2 pour la 2ème, ... et permet ainsi re récupérer la 1ère valeur, la 2ème valeur, ... répondant au critère

Voilou pour la tentative d'explication.

@+
 

lienad

XLDnaute Occasionnel
Re : Recherche V? Peut etre !

Bonjour,

Je reviens vers vous pour essayer d'avancer .
En fait les données à reprendre sur la feuille 2 ne sont pas dans des colonnes contigues en page 1 . Faut-il nommer les colonnes ?

Merci pour votte contribution
 

CISCO

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Bonjour à tous, bonjour lienad

Tu peux faire avec ou sans plage nommée, c'est comme tu veux...

Cf la pièce jointe, toujours avec la formule proposée par Tibo

@ plus
 

Pièces jointes

  • question recherche(1).xls
    28.5 KB · Affichages: 47

lienad

XLDnaute Occasionnel
Re : Recherche V? Peut etre !

Bonjour Cisco , Bonjour le forum

Je poursuis mon apprentissage à partie de ton dernier envoi .
Cependant lorsque je cherche à reproduire ton exemple, et ecris la formule
Excel me renvoit un message d'erreur "la formule que vous avez tapée contient une erreur... " et fait reference à N°_ client .
De plus il renvoit aussi un message "Vous devez taper une référence valide .."
lorsque l'on clique sur la plage nommée N° _ client .

Si vous pouvez m'aider .
 

CISCO

XLDnaute Barbatruc
Re : Recherche V? Peut etre !

Bonsoir

Tu peux travailler directement avec le tableau du haut, en imitant les formules écrites à droite, sans utiliser de plages nommées, mais en faisant attention aux parties écrites en rouge.

Sinon, quelle version d'excel utilises tu ? Chez moi, sur excel 2007, mon fichier tourne sans problème...

Comme proposé par Eriiiic, essayes sans le ° de N°...

@ plus
 

Discussions similaires

Statistiques des forums

Discussions
312 241
Messages
2 086 523
Membres
103 242
dernier inscrit
Patoshick