Récupération de données

Bonjour,

Il doit sûrement s'agir d'un sujet récurrent mais ne sachant pas les pistes de solutions, je n'arrive pas à le cataloguer vers un autre dossier...

Il s'agit de récupérer les données d'une ligne d'une base de données d'une feuille pour les exporter/copier sur une autre feuille à partir d'une données commune (un n° de matricule en l'occurrence), sachant que les deux tableaux ne sont pas remplis dans un ordre précis et surtout pas dans le même ordre chacun mais au fur et à mesure, ce qui rend la recherche plus compliquée.

Je nage un peu sur les fonctions INDEX, RECHERCHEV et autres fonctions de recherche, par ailleurs je ne connait pas le VBA : tous pour plaire le gars Faire une combinaison avec SI ?

Vous trouverez en PJ un exemple de mon problème.

Par avance, merci.

25test.xlsx (11.86 Ko)

Bonsoir,

en F3

=DECALER(INDEX('gestion des postes'!$A$2:$A$28;EQUIV($E3;'gestion des postes'!$A$2:$A$32;0));;1)

Mais tu peux aussi utiliser recherchev dans ce cas précis

=RECHERCHEV($E5;matricule;2;FAUX)

Vois les formules dans ton exemple

Cordialement

21ddetp88-test.xlsx (12.76 Ko)

Je te remercie pour ta réponse, mais lorsque je change les matricules par d'autres données, le transfert ne se fait plus. Je t'envoie en pièce jointe un exemple avec tes formules.

J'insiste sur le fait que la saisie des matricules dans la 2ème feuille ne se fait pas dans le même ordre que dans la 1ère forme puisqu'il s'agit de saisie "à la volée", au fur et à mesure que les informations me parviennent.

Tes formules font-elles référence à la composition même de leur nom ?

Par avance merci

21ddetp88-test.xlsx (12.81 Ko)

Bonjour,

jcl1970 a écrit :

Tes formules font-elles référence à la composition même de leur nom

Elles sont basée sur la colonne "Matricule du poste demandé" soit la colonne E

Dans l'onglet gestion des postes, tu n'as pas de noms.

Regarde les formules dans l'exemple joint et précise ta demande au cas où celles-ci n'iraient pas.

Cordialement

24ddetp88-test.xlsx (12.76 Ko)

Eurêka ! Cela marche !

Merci beaucoup pour le coup de main

J'ai parler trop vite... Je m'arrache les cheveux à appliquer tes formules sur mon tableau mais rien ne fonctionne... Help !

Par ex. : quand j'entre le n° de profil dans la colonne V de la feuille 2 (='recrutement') et qui est identique à celui de la colonne W de la feuille 1 (='analyse des postes'), les données de la feuille 1 (colonnes R, S, T, U, et V) ne sont pas récupérer quelle que soit la méthode utilisée (DECALER+INDEX+COLONNE ou RECHERCHEV+nom+COLONNE+FAUX).

Dans le gestionnaire des noms, j'ai crée un nom appelé "profil" qui couvre la plage 'analyse des postes'!$A$2:$AA$500 car la solution avec RECHERCHEV paraissait plus simple, mais rien Je pense qu'il doit y avoir un problème avec la fonction COLONNE()-nbre

Désolé de te relancer ainsi... Par avance merci !

bonjour

un essai

sans plages nommées ( pour les test....)

26jcl970.xlsx (61.10 Ko)

cordialement

Bonjour à vous deux,

Colonne() donne un numéro de colonne dans la fonction décaler. -5 correspond au décalage par rapport à colonne.

Effectivement il faut faire une adaptation dans ton projet définitif.

Tulipe vient de faire un proposition en ciblant les colonnes.

Sa proposition implique de modifier les valeurs des colonnes alors qu'avec ma proposition il suffit d'étirer ta formule vers la droite pour que tout fonctionne. Il te suffit de trouver la valeur de décalage pour ton projet. -5 dans l'exemple. Combien dans ton projet??

A toi de voir

Pour la fonction recherchev j'ai nommé une plage. La aussi rien ne t'empêche de l'adapter.

Je vois que tu maitrises cette compétence. Tu dois pouvoir le faire

ddetp88

bonjour

a noter qu'il est toujours possible de faire avec RECHERCHE mais il faut combiner avec CHOISIR pour recombiner la matrice

le jeu en vaut il la chandelle ?

cordialement

Bonjour et merci à vous deux,

La solution de tulipe_4 fonctionne bien. Dans sa formule =SIERREUR(INDEX('analyse des postes'!$R$2:$V$4;EQUIV(recrutement!$V3;'analyse des postes'!$W$2:$W$4;0);COLONNE(A:A));""), il suffit d'une part, d'élargir dans la formule la plage R2:V4 à, par ex. R2:V500 (idem pour W2:W4) pour se donner de la marge, et d'autre part, de "tirer" les colonnes W à AA vers le bas au fur et à mesure de la saisie.

En ce qui concerne ta solution, ddetp88, avec COLONNE()-nbre, je n'ai pas bien compris sur quelle feuille et à partir d'où je doit comptabiliser (il faut dire que j'utilise pas souvent la fonction COLONNE...). J'avais bien compris que tu avais crée un nom; j'ai fait de même sur une plage plus grande (le nom s'appelle "profil" et va de A2 à AA500 dans la feuil1). L'avantage de ta solution était effectivement sa simplicité ! Ainsi je ne comprend pas le renvoi à COLONNE(A:A) dans ta formule, tulipe_4 ?

Enfin quant à RECHERCHE+CHOISIR, effectivement cela n'en vaut pas la peine car les colonnes ont un ordre précis correspondant au déroulé d'une procédure (de recrutement, vous l'aurez compris !).

bonjour

tulipe3 =tulipe 4

pour repondre a ton "soucis" avec COLONNE

la fonction COLONNE donne un N° de colonne ; si tu saisis colonne (a:a) c'est comme si tu saisissais 1 ;tu dois te penetrer de l'idée que COLONNE n'a rien a voir avec les colonnes de ta matrice de recherche ;c'est tout simplement une façon deotournée de ne pas avoir avoir a saisir 1 puis 2 puis 3....... car en tirant vers la droite a:a (1) se transforme en B:B (2) ..... si on ne fige pas avec des $$

quant a RECHERCHEV (val de ref ;(CHOISIR({1;2}.plage 1;plage2);2;0) est une fonction matricielle ....... "bidouille " qui n'a de bien que l'elegance de l'ecriture ; un simple index (equiv(....... comme proposé fait parfaitement la balle

et plus simple encore : tu modifies ton tablo en mettant la colonne des ref carrement a gauche ; recherchev tout simple ira tres bien

cordialement

Autant pour le n° de la tulip

Effectivement, je confondais colonnes et colonne... merci de l'explication

Rechercher des sujets similaires à "recuperation donnees"