Champ de recherche et affichage de la ligne en haut du tableau

rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je travaille sur un tableau qui contient plus de 2000 lignes et de nombreuses colonnes. Chaque ligne va subir plusieurs modifications au cours du temps.

j'aimerais créer un champ de recherche dans lequel l'utilisateur saisit la référence recherchée et en cliquant sur un bouton, la ligne contenant la référence vient s'afficher en haut du tableau.

j'aimerais éviter la liste déroulante du filtre si possible.

merci beaucoup



A voir également:

11 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir

Pourquoi réinventer ce qu'Excel propose déjà à peu près avec Rechercher (raccourci clavier CTRL + F) ?

Ou alors quelque chose m'échappe ?

Cdlmnt
Via
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir Via,

vous avez bien raison de vous poser cette question !
en fait quand on va mettre à jour ce fichier, c'est plus de 100 fois qu'il faut faire CTRL+F. Je cherche à rendre ce travail moins fastidieux et le tableau plus convivial.
merci
REbecca
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Ok

Donc il faudrait par macro faire positionner sur la ligne de la référence ?

Dans quelle colonne doit-être recherchée la référence ?


"L'imagination est plus importante que le savoir."    A. Einstein
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir Via,

oui c'est cela : une macro
la référence à chercher est dans la 3è colonne

merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Re

Un exemple, le changement de choix de reference lance la macro
ALT+F11 pour voir la macro
http://www.cjoint.com/c/FAAxVVCZMw7

Cdlmnt
Via
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour Via,

et un grand merci pour ce travail fait à point d'heure !!

j'ai testé le fichier envoyé et ça marche bien !

j'ai tenté de copier cette macro dans mon fichier mais n'y suis pas parvenue. Vous pouvez m'expliquer pas à pas comment faire ?

ensuite j'aimerais que la cellule de recherche soit la C6. J'ai tenté de modifier $E$2 en $C$6 mais la macro ne fonctionne plus.

Est il possible que la ligne recherchée vienne s'afficher en ligne 10 ? qu'elle remonte en haut du fichier juste en dessous des intitulés de colonnes ?

et j'aimerais dupliquer cette macro pour d'autres colonnes du fichier mais comment faire ? :-)

Encore mille mercis pour toute cette précieuse aide !
Rébecca
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Rebecca

1) Pour insérer la macro, il faut qu'elle soit dans le worksheet de la feuille (elle est attachée à la feuille des données) :
ALT+F11 pour ouvrir l'éditeur VBA - Double clic sur la feuille à laquelle attacher la macro dans l'arborescence à gauche - Copier et coller la macro dans la page vierge de droite

2) Pour changer de cellule de recherche il faut bien modifier $E$2 en $C$6 et ça doit fonctionner

3) Tu veux appliquer la macro à d'autres colonnes mais pour effectuer la même recherche de la valeur entrée en C6 dans plusieurs colonnes différentes ou bien faire des recherches différentes à partir de cellules de choix différentes, chacune recherchant dans une colonne particulière ?

4) Tu veux faire afficher la ligne en ligne 10 juste pour consultation (dans ce cas il suffit par macro de la copier) ou pour éventuellement la modifier (dans ce cas il faut la déplacer avec la macro) ?

Je suis absent cet après midi mais je regarderai ce soir avec les compléments d'information que tu m'auras donné d'ici là

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour Via,

merci encore pour le temps que je te dérobe :)

je vais reprendre point par point tes instructions

1- j'ai ouvert mon fichier et l'ai enregistré en .xlm pour qu'il accepte les macros, puis j'ai copié-collé le code de la macro dans la feuille qui contient la base de données.
2- j'ai modifié le $E$2 en $C$6
3. enregistré le tout
4. j'ai saisi une ref dans la cellule C6 : il ne se passe rien.
5. je suis marrie...

Oui je souhaite dupliquer cette macro pour d'autres colonnes du fichier. L'utilisateur pourrait alors rechercher une ligne soit par la référence (en C6), soit par le fournisseur(en I6) ou par un montant (en K6) par ex.

je souhaite que la ligne dans laquelle se trouve la valeur cherchée arrive juste en dessous de la ligne des intitulés de colonnes.
Et en effet, elle sera modifiée.

merci Via et j'espère que mes explications sont claires.
à bientot
rebecca
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Rebecca

Et comme ceci ?
http://www.cjoint.com/c/FACaawlXNM7

Cdlmnt
Via
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Via

merci pour cette nouvelle version.
désolée de ne pas avoir répondu plus tôt mais je suis en province et je n'ai pas toujours accès à internet.

J'ai testé le fichier que tu m'as envoyé : dès que j'entre une valeur dans un des champs de recherche, une fenetre s'ouvre avec la lettre "a" à l'interieur. Je clique sur OK, la requete s'exécute et remonter la ligne avec la valeur recherchée.
Cette fenetre avec la lettre "a" s'ouvre pour les 3 champs.
je vais tester la macro sur mon fichier et te fais un retour immédiatement.
merci
Rébecca
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Via,

j'ai copié la macro sur mon fichier.
elle s'exécute de la meme manière que dans ton fichier exemple ; la fenêtre avec la lettre "a" s'affiche.
mais en plus, dès que je clique sur OK, les lignes 11 à l'infini s'effacent pendant plus de 5 secondes avant que la ligne recherchée s'affiche avec le reste des lignes du tableau.
la recherche est longue.
vois tu ce qui rend cette recherche longue ? et d'où sort cette fenetre avec la lettre "a" ?
merci bcp
Rebecca
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir Rebecca

Désolé! j'avais mis cette fenêtre pour faire un test de fonctionnement et je croyais bien l'avoir enlevé avant de t'envoyer le fichier

Va dans la macro et supprime la ligne : MsgBox "a"

La longueur doit tenir à la taille de ton tableau
Contient-il des formules de calcul ?
Si c'est le cas cela peut jouer, pour essayer d'y remédier rajoute en début de macro (juste sous Private sub) cette ligne qui désactive le calcul automatique :
Application.Calculation=xlCalculationManual

puis rajoute en fin de macro (juste avant le End sub) pour le réactiver :
Application.Calculation=xlCalculationAutomatic

Cdlmnt
Via
0
rebecca Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via,

j'ai suivi tes instructions mais Excel a planté.
J'ai enlevé les instructions Application.Calculation et le plantage a cessé.
j'utilise trois fonctions dans le fichier :
- Somme
- mois(n)
- annee (n)

lorsque je saisis une valeur, il affiche la valeur n+1 en ligne 10 et le temps de traitement reste toujours aussi long.

merci encore pour ton aide
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Rebecca

Bizarre ce plantage

Pourtant pour accélérer le temps de traitement il faut bien passer en calcul manuel pour éviter le recalcul incessant lors du traitement

Essaie de passer en calcul manuel avant de lancer la macro (et ne pas oublier de repasser en automatique après !) en allant dans Formules dans le Ruban puis Options de calcul

Cdlmnt
Via
0