Automatiser une saisie sous Excel

Résolu/Fermé
Mistral_13 Messages postés 17 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 11 février 2008 - 4 janv. 2008 à 10:36
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 30 mai 2008 à 23:43
Bonjour,

A partir d’un classeur Excel comportant un nombre indéterminé (pour le moment) de feuille, je souhaiterais avoir la première feuille masquée et protégées. Ca je sais faire…
Sur cette feuille se trouvera un tableau de X colonnes et de Y lignes comportant indifféremment des valeurs numériques ou du texte, voir des valeurs alphanumérique. Ca je sais faire…
A partir de ce tableau je souhaiterais créer, dans toutes les autres feuilles, une liste déroulante composée de la première colonne du tableau de la première feuille. Ca je sais faire…
Une fois une valeur choisie remplir les colonnes adjacentes avec les valeurs de la ligne du tableau correspondant à cette valeur et c’est là que j’ai besoin d’aide pour créer la macro qui me permettra de faire ce travail. Quelqu’un peut-il m’aider ?

Le format des cellules dans chacune des feuilles sera identique.
D’avance merci pour votre aide.
Mistral_13
A voir également:

10 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
4 janv. 2008 à 11:21
Bonjour,

Tu veux absolument une macro ?
Pke tu peux le faire avec RECHERCHEV()
Ex en B1 feuil2 et la valeur choisie en A1 :
=RECHERCHEV(A1;Feuil1!$A$1:$E$70;2;FAUX) te ramene la valeur de la colonne 2 de ta feuil1

Si tu veux faire une recopie incrémentée à droite sur les colonne tu peux saisir :
=RECHERCHEV(A1;Feuil1!$A$1:$E$70;COLONNE();FAUX) ,
si tu es en B, COLONNE() te retourne 2 etc

Si tu fais ce choix et que tu as besoin d'aide pour cette fonction demande...

eric
0
Mistral_13 Messages postés 17 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 11 février 2008
6 janv. 2008 à 08:33
Bonjour Eric,

Je ne tiens pas plus que ça à faire une macro, je souhaite simplement obtenir le résultat que je cherche.

Concernant la première partie de ta réponse :
Effectivement avec "RECHERCHEV" j'obtiens pratiquement ce que je veux à condition toute fois que ma table de référence soit triée dans l'ordre croissant de la première colonne sinon c’est n’importe quoi. Se pose aussi un problème si j’ai plusieurs fois la même valeur dans la même la première colonne. Je récupère toujours les valeurs de la ligne correspondantes à la valeur cellule située au plus bas de ma table de référence. Ce qui peut-être le cas avec des personnes d’une même famille. Comment régler ce problème sans utiliser un e astuce comme ajouter l’initiale du prénom dans la cellule du nom.

Concernant la seconde partie de ta réponse :
Je suis probablement trop nul car je ne comprends l’utilité d’insérer "COLONNE" dans la formule. Peux-tu m’expliquer ?

D’autre part il semble impossible de créer une liste déroulante sur une feuille si la table de référence est sur une autre feuille. As-tu une astuce pour cela car je tiens à ce que ma table soit sur une feuille séparée, protégée et masquée.
En tout cas merci pour ton aide.
Mistral_13
0
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 927
6 janv. 2008 à 09:44
Salut

"Effectivement avec "RECHERCHEV" j'obtiens pratiquement ce que je veux à condition toute fois que ma table de référence soit triée dans l'ordre croissant de la première colonne sinon c’est n’importe quoi. "

Sauf à me tromper, si tu termines ta formule en ajoutant l'argument ;FAUX , juste avant de fermer la parenthèse, celà fonctionne avec une liste non triée :

ex de l'un de mes tableaux perso : =RECHERCHEV($K$12;Politique_prix;3;FAUX)

0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
6 janv. 2008 à 15:10
Comme dit furtif, si tu mets bien l'argement faux en dernier recherchev() ne te retournera pas n'importe quoi.

je ne comprends l’utilité d’insérer "COLONNE" dans la formule
Il suffit de lire :
Si tu veux faire une recopie incrémentée à droite sur les colonne tu peux saisir :
=RECHERCHEV(A1;Feuil1!$A$1:$E$70;COLONNE();FAUX) ,
si tu es en B, COLONNE() te retourne 2 etc

Sinon tu fais comme avant, en C tu corriges le 2 en 3, en D tu corriges le 2 en 4 etc
0

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

Posez votre question
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
6 janv. 2008 à 16:10
Salut,

D’autre part il semble impossible de créer une liste déroulante sur une feuille si la table de référence est sur une autre feuille. As-tu une astuce pour cela car je tiens à ce que ma table soit sur une feuille séparée, protégée et masquée.
Il n'y a pas de problème s'il s'agit d'une autre feuille du même classeur. Et le mieux est de donner un nom à chacune de ces tables de référence. Les feuilles contenant ces tables peuvent ou non être protégées à leur tour.
0
Bonjour Monsieur,
Bravo pour votre démonstration concernant les listes déroulante, toutefois vous ne donnez pas la solution pas à pas pour positionner cette liste déroulante à partir d'une autre feuille.
Bien cordialement
Serge qui attend de savoir faire cet exercice.
0
Mistral_13 Messages postés 17 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 11 février 2008
6 janv. 2008 à 23:22
Bonsoir à tous,

Merci pour votre aide précieuse.
Tout fonctionne parfaitement et surtout comme je le voulais.

Grace à vous je peux aller me coucher l'esprit tranquille...
Mistral
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
7 janv. 2008 à 04:38
Parfait ! Alors pense à changer le statut. Salut.
0
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 927
7 janv. 2008 à 09:04
Salut

Juste avant de clore :

- Si la liste est triée on ajoute l'argument VRAI, si l'on ne met rien, c'est VRAI par défaut.
- Si la liste n'est pas triée, il faut impérativement ajouter l'argument FAUX.

Cette procédure s'applique plus généralement à toute manip sur des listes, dans Excel.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
7 janv. 2008 à 13:46
Bonjour tout le monde,

Heuuuu, une précision quand même :
On ne met VRAI (ou omis) que si on désire récupérer une valeur approchée immédiatement inférieure en cas d'absence de la valeur recherchée, et dans ce cas la liste doit être triée.
Si on veut la valeur EXACTE on met FAUX, que la liste soit triée ou non.
eric
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
30 mai 2008 à 23:43
Je vois bien que tu n'es pas un habitué du forum, puisque tu ne t'es pas encore inscrit comme membre.
Cependant je dois te tirer les oreilles pour t'être infiltré dans la discussion de Mistral_13 ; c'est impoli.
De plus tu te pénalises, puisque cette discussion est clôturée depuis des mois (depuis le 7 janvier) et plus personne ne s'y intéresse.
Alors, désormais, clique sur "Posez votre question", en haut de l'écran, sous la ligne de RECHERCHE, et lance ta propre discussion avec un intitulé clair et explicite.
Mais pour cette fois, je passe l'éponge et je te réponds :

Reprenons l'exemple de eriiic au post 1 =RECHERCHEV(A1; Feuil1!$A$1:$E$70 ;2;FAUX)
Comme je l'écris au post 5 "Il n'y a pas de problème s'il s'agit d'une autre feuille du même classeur. Et le mieux est de donner un nom à chacune de ces tables de référence."
Donc si la table servant de référence pour ta liste déroulante a été nommée "Zut" et se trouve dans le même classeur, tu remplaces Feuil1!$A$1:$E$70 par Zut et ta formule devient =RECHERCHEV(A1; Zut;2;FAUX)

Il y avait vraiment besoin de te guider pas à pas ?
0