Forum Clubic

Problème à résoudre avec excel

Voila je n’y connais rien en office excel pourtant au boulot je dois résoudre un problème que je vais essayer d’expliquer clairement ici.

Alors,

J’ai un classeur (classeur1) avec des références (pleins de références de pièces automobile). Les références sont regroupées en familles.
Exemple : La famille VOLANT peut avoir 50 références (soit 50 modèles de volants différents)

Dans un autre classeur(classeur 2) je dois “classer” les réf en fonction des familles.

Normalement je me tape tout à la main. Mais là je dois le faire automatiquement.

CE que je veux faire :

Classeur 1 (celui avec toutes les réf) évolue tout le temps et contient des centaines de REF. Je voudrais que classeur deux, quand je tape une REF d’un objet il me mette tout seul à coté sa FAMILLE.

Exemple : SI je tape la réf d’un volant il mette tout de suite ds la case FAMille : VOLANT.

En gros quand je reçois je fichier avec toutes les réf, le 2 ème classeur quand je l’ouvre dois ajouter les nouvelles réf et leur famille.

Vous avez compris ?

Comment faire avec Excel sachant que j’y connais presque rien lol.

Si vous avez des conseils…

Bonjour,

Je suis assez rouillé avec Excel et d’autres interviendront peut-être de façon plus concise et pertinente.

Tu as la fonction Tris (représentée par un “A” et un “Z” avec une flèche (tri croissant et décroissant). Ceci se fait dans la page actuelle.

Ensuite tu as la fonction RechercheH ou RechercheV (fx) qui, elle, se fait sur un autre classeur.

Je peux guère aller plus loin que cela mais j’espère t’avoir donné quelques éléments que l’aide d’Excel complètera.

A +
Edité le 16/03/2009 à 13:29

En fait

Jai deux fichier dont 1 qui m’est envoyé tous les jours et qui est modifié tous les jours. Celui des références. Quand je le reçois je voudrais qu’en ouvrant l’autre fichier classeur 2il se mette à jour tous seul (ou en cliquant sur un bouton) en ajoutant les nouvelles ref et en mettant les familles auxquelles elles correspondent.

Je sais même pas quoi chercher dans l’aide. S’il me faut une formule ou un macro( on ma conseillé ça…je sais pas ce que s’est)

Re,

Ou en fait un Tableau Croisé Dynamique (TCD).

Que ce soit sur TCD ou avec la fonction Recherche (V comme H), cela se fera sur le Classeur2. Il est préférable d’avoir en Classeur1 un espace de données constant si on veut éviter les cellules vides.

C’est-à-dire que lorsque tu créeras le TCD, il te demandera à partir de quelle plage de données (i.e. les références des pièces). Donc, il faudra sélectionner toutes les cellules. Mais si un jour c’est 100 lignes et le lendemain c’est 90 lignes alors tu auras les 10 lignes vides qui seront quand même prises en comptes. Mais bon , pas très grave.

Si tu reçois tous les jours le fichier, il faudra faire un copier-coller (puisque dans le fichier que tu reçois, il n’y aura pas ton classeur2).

Regarde ce lien sur les TCD pour savoir si ça correspond à tes attentes.

L’aide d’Excel répondra à plusieurs de tes questions avec comme mots clés les termes que je t’ai donné : “tableau croisé dynamique” (pour les TCD) ; “tri” ; “recherchev” ; “rechercheh”.

Quant aux macros : je ne sais pas du tout.
Edité le 16/03/2009 à 14:57

Merci, c’est déjà une première piste concrète. J’vais guetter ça :slight_smile: merci.

Si ça peut aider.

http://img50.imageshack.us/img50/7671/clich20090316180528.tif
http://img50.imageshack.us/img50/clich20090316180528.tif/1/w640.png

S’il n’y a pas de doublon dans tes références du premier classeur, un simple RechercheV suffira;
Par contre, il va te falloir une macro (et un bouton) pour ajuster les tailles des zones référence et cible, et pour copier la formule recherchev en regard des lignes remplies dans le classeur 2 (et uniquement celles-là)

Re,

J’ai plus l’impression que c’est une recherche H (ou rechercheV, me rappelle plus). Je crois que ça fera un truc du style (je traduis en à-peu-près : je suis rouillé). Dans la cellule B37 : “cherche la valeur A37 dans la première colonne du tableau A1-B14 et recopie la valeur de la deuxième colonne”.

Ca doit être une RechercheV
Edité le 16/03/2009 à 18:27

un tableau croisé dynamique avec un filtre sur la ref de tes familles.

http://img7.imageshack.us/img7/7835/baseg.th.jpg

http://img7.imageshack.us/img7/4113/resultat.th.jpg

pour la mise a jour ,tu fais clic droit sur le TCD et “actualiser les données”

Le tableau des réf , et lautre seront ds deux fichiers exel différents hein? vous aviez bien compris ça?

Classeur différent ou feuille différente du même classeur, avec rechercheV ça ne change rien
Seule la référence diffère (tu lui rajoutes le nom du classeur)

bon j’ai clarifié le truc car les réponses que j’ai eu restent flou.

http://img6.imageshack.us/img6/8672/clich20090317223609.tif
http://img6.imageshack.us/img6/clich20090317223609.tif/1/w528.png

un brouillon a peaufiner
fichier ici

D’accord, le recherche V donc, et quad ma feuille de ref de base va se modifier (tous les jours) je dois faire quoi ?changer les coordonnées du tableau?

Oui,dans l’exemple qui t’est donné, il faut que tu changes les références dans toutes les lignes de la colonne B de nouv reference.
Sauf si au lieu de travailler avec des coordonnées directes, tu travailles avec une zone nommée.

Tu ouvres ton fichier de nouvelles references (il doit rester ouvert pendant toute l’opération) et tu y affectes un nom à l’ensemble des cellules utiles, par exemple REFERENCES
à ce moment là la formule dans l’autre classeur devient
=SI(xxx="";"";RECHERCHEV(xxx;yyyy!REFERENCES;FAUX)),
(xxx représente la cellule courante, yyyy le nom du classeur référence)
et tu n’auras plus à la toucher lorsqu’un nouveau classeur arrive.

On suppose bien sûr que le nouveau classeur porte le même nom que celui qu’il remplace
Dans le cas contraire, il vaut mieux envisager de passer par une copie temporaire, à effacer après traitement.

tu parles bien des ref du fichier avec les 3000 et qques réf ?

La premiere feuille est celle ou tu as tes 3000 references et familles, celle que tu mets a jour avec le fichier qu’on t’envoie
La deuxieme feuille est celle ou tu inscrits tes references et où se met a jour la cellule adjacente avec la famille.
On peut meme perfectionner la formule, comme le dit cgc, en mettant
=SI(xxx="";"";RECHERCHEV(xxx;FEUIL1!$b:$c;2;FAUX))

feuil1 que tu rebaptises du nom de ta feuille de mise a jour

et qui est independante du nombre de ligne dans ta feuille de mise a jour $b:$c te couvrant les 2 colonnes de ta matrice

donc finalement

tu as [classeur1]feuil1!$b:$c avec tes ref (classeur ouvert)
et [classeur2]feuil1! avec tes 2 colonnes (famille et reference). tu baptises la colone “reference” du nom de reference etu creés le mon sources, affecté a [classeur1]feuil1!$b:$c
et ta formule devient :

=SI(ref="";"";RECHERCHEV(ref;sources;2;FAUX))
qui fonctionne quelque soit la longueur du fichier classeur 1

un petit fichier vaut mieux que mon long discours !

classeur1
classeur2

avec classeur1 et classeur2
Edité le 18/03/2009 à 10:56

Bon bah merci pour tout, ça répond exactement à mes attentes. J’ai plus qu’à adapter la solution à mon cas.

Juste un truc. Peut on m’expliquer à quoi correspondent tous les termes de la formule :

=SI(ref="";"";RECHERCHEV(ref;sources;2;FAUX))

Et qu’est ce que je dois modifier si je change le nom du fichier ou bien si je met la formule ds des fichiers déjà fait ?

Tu parles bien de changer de fichier source (classeur1) ?

A l’ouverture de classeur2, le programme te demande si tu veux mettre à jour les liaisons
Tu réponds oui, puis modifier les liaisons, modifier la source, et tu n’as plus qu’à choisir le nom du nouveau classeur

Pour la formule :
je pense que le Si() ne te pose pas de problème.
pour RechercheV(), tu ouvres excel, tu appuies sur F1 et tu choisis RechercheV comme mot-clé
Tout y bien expliqué ; et à partir de là on peut compléter si tu le souhaites.

djidji ->
bien joué, le coup de faire référence aux colonnes entières de la source
Par contre, pour le classeur2, personnellement je me serais tourné vers un remplissage “à la demande” par VBA de la colonne 2 (évenement Worksheet_Change() limité à la colonne 1)

A ma grande honte, je ne sais pas faire de VBA !