Recherche des éléments d'une table

marmotte18

XLDnaute Impliqué
Bonjour,

Je vous transmets un fichier Excel comportant 2 onglets :
  • Base (contenu de la base de données. Il pourrait y avoir plusieurs dizaine de milliers d'enregistrements. Je n'en ai mis que 10)
  • Recherche (le gestionnaire doit saisir un Num en C1)
Le fichier est destiné à plusieurs dizaines d'employés. la démarche doit être faite sans macro.

Résultats attendus :

Si le N° saisi "Num" n'appartient pas à la base "Tab", le tableau résultats se trouvant dans l'onglet "Recherche" doit être vide.

Si le N° saisi appartient à la base, toutes les lignes correspondantes doivent être ramenées dans l'onglet recherche.

Problématique :


Ma solution fonctionne très bien mais je me demande si on peut améliorer la méthode :
  • Peut-on se passer du N° de ligne que j'ai rajouté dans Tab ?
  • Peut-on se passer du N° de ligne que j'ai rajouté dans la table des résultats ?
  • Existe-t-il des formules plus consises pour arriver au résultat ?
Il faut souligner que dans les faits, le tableau de résultats pourrait avoir au maximum une centaine de lignes et que la base pourrait contenir une trentaine de colonnes.

Merci par avance à ceux qui se pencheront sur mes interrogations.
 

Pièces jointes

  • Recherche.xls
    25.5 KB · Affichages: 48
  • Recherche.xls
    25.5 KB · Affichages: 45
  • Recherche.xls
    25.5 KB · Affichages: 49
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Recherche des éléments d'une table

Bonjour,

Essaye avec cette formule matricielle :

en A4 :

Code:
=SI(NB.SI(Base!$A$2:$A$200;Num)<LIGNE()-3;"";INDEX(Base!$[COLOR=red][B]A[/B][/COLOR]$1:$[B][COLOR=red]A[/COLOR][/B]$200;
PETITE.VALEUR(SI((Base!$A$2:$A$200=Num)*(LIGNE(INDIRECT("2:200")))<>0;
(Base!$A$2:$A$200=Num)*(LIGNE(INDIRECT("2:200"))));LIGNE()-3)))

Formule à valider par CTRL + MAJ + ENTREE

et à recopier vers le bas

Pour les colonnes suivantes, adapte la colonne au niveau de INDEX. le A devient C pour la colonne Trim, etc.

@+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche des éléments d'une table

Bonsoir,

Avec le filtre élaboré

Voir PJ

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Sheets("Base").Range("A1:E1000").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("C1:C2"), CopyToRange:=Range("A3:D3")
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • recherche(1).xls
    25.5 KB · Affichages: 52
  • recherche(1).xls
    25.5 KB · Affichages: 55
  • recherche(1).xls
    25.5 KB · Affichages: 50
Dernière édition:

bcharef

XLDnaute Accro
Re : Recherche des éléments d'une table

Bonsoir marmotte18,Tibo,BOISGONTIER
Bonsoir le forum

Suite à la lecture de votre fichier, j'ai le plaisir de vous proposer la solution de votre probléme sur le fichier ci-joint.

Essaye de le consulter , s'il convient à la solution de votre probléme.

Bcharef
 

Pièces jointes

  • RechercheTCD .xls
    16 KB · Affichages: 46

marmotte18

XLDnaute Impliqué
Re : Recherche des éléments d'une table

Bonsoir BOISGONTIER,

J'avais demandé sans macro mais j'ai quand même eu la curiosité de regarder.

C'est très consis ! BRAVO !

J'ai essayé de l'adapter à plus de colonnes (A à H de l'onglet "Base") et bêtement je n'y suis pas arrivé. Cela me donne toujours les mêmes résultats.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
'Déprotection de la feuille
'------------------------
    ActiveSheet.Unprotect
 
'Recherche des enregistrements correspondant au N° saisi
'-------------------------------------------------------
    Sheets("Base").Range("A1:H65536").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("C1:C2"), CopyToRange:=Range("A3:H3")
 
'Protection de la feuille
'------------------------
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    Range("C2").Select
End Sub

Que dois-je modifier pour obtenir ce 2ème objectif ?
 
Dernière édition:

marmotte18

XLDnaute Impliqué
Re : Recherche des éléments d'une table

Bonsoir bcharef,

Une proposition par tableau croisé dynamique ! BRAVO !

Peut-on utiliser cette faculté sur une autre page que celle de la base de données ?

Qu'advient-il si j'ai plusieurs dizaines de milliers de N° différents ? N'y a-t-il pas une limite d'affichage dans la liste déroulante qui me propose les valeurs ?

Merci également de tout ce mal que tu te donnes pour moi.
 

bcharef

XLDnaute Accro
Re : Recherche des éléments d'une table

Rebonsoir marmotte18;
Rebonsoir le forum.

A l'occasion de ce fil, j'ai le grand plaisir de passer le grand bonjour à BOISGONTIER "JB" .

Peut-on utiliser cette faculté sur une autre page que celle de la base de données ?

Oui, vous avez la faculté d'utiliser une autre feuille nommée "TCD" distinctement de la base de donnée .

Qu'advient-il si j'ai plusieurs dizaines de milliers de N° différents ? N'y a-t-il pas une limite d'affichage dans la liste déroulante qui me propose les valeurs ?

Voilà, j'ai automatisé l'actualisation du TCD par une petite macro, ainsi que la plage de vos données par la fonction décaler .

La limite est conditionnée par le nombre de lignes et de colonne de la feuille en elle même.

Comme, il est utile de porter à votre connaissance d'enregistrer les dates au lieu de "exercice", "trimestre", car, tout simplement le TCD peut les gérer lui même.

Je vous joins le fichier, j'espére bien que ça vous convient.

A+
 

Pièces jointes

  • RechercheTCD1 .xls
    33.5 KB · Affichages: 45

marmotte18

XLDnaute Impliqué
Re : Recherche des éléments d'une table

Bonsoir tout le monde,

BOISGONTIER :

Merci pour ton nouveau fichier.

Je cherche en fait à adapter ton exemple pour qu'à chaque N° saisi cela ramène toutes les informations figurant dans les colonnes B à H correspondant à ce N° et pas seulement les informations des colonnes B à D.

Peux-tu me dire où faut-il que je fasse les modifications pour obtenir ce résultat ? Je n'y arrive pas !
 

Pièces jointes

  • Recherche5 - Boisgontier.xls
    29.5 KB · Affichages: 41

marmotte18

XLDnaute Impliqué
Re : Recherche des éléments d'une table

Bonsoir tout le monde,

bcharef :

Merci pour votre nouvelle mouture ! Le principe est intéressant. Néanmoins, j'ai quand même des craintes quant aux limitations d'affichage des N° proposés dans la liste déroulante.

Mais je garde précieusement votre méthode sous le coude afin de la mettre en présence du fichier réel quand je l'aurai à disposition.

C'est sympa de votre part de m'avoir consacré du temps !
 

marmotte18

XLDnaute Impliqué
Re : Recherche des éléments d'une table

Bonsoir tout le monde,

Merci BOISGONTIER pour ton dernier fichier. Cela marche super bien !

Les propositions des autres internautes marchent bien aussi d'alleurs. J'en profite pour remercier à nouveau bcharef et Tibo.

=> Je considère le sujet clos !
 

Discussions similaires

Statistiques des forums

Discussions
314 177
Messages
2 106 872
Membres
109 711
dernier inscrit
leveille