transposition de donnée sur une feuille et menu de selection

mam721

XLDnaute Junior
Bonjour à tous,

J'ai besoin d'aide concernant la les transposé de donnée d'une feuille sur une autre et de la création d'une macro pour un inventaire.
Je vous fourni ci joint un fichier excel qui comporte l'exemple que je souhaiterais. Cet exemple a été tapé à la main donc je chercherais a automatiser la feuille 2 et 3.

J'ai un un inventaire qui se présente sous la forme suivante sur la feuille 1: il a en tout 100 produits sur 52 semaines

01 02 03
A 1 2 3
B 5 4 6
C 2 2 2


Je souhaiterais que sur la feuille 2 que ca se présente comme cela :
Produit A
01 1
02 2
03 3
-- une ligne de plus --
Produit B
01 5
02 4
03 6
-- une ligne de plus --

C'est une presque une transposition des données de la feuille 1 sur la feuille 2, avec une présentation différentes des données de la feuille 1.
je sais que manuellement il faut taper ='feuille1'!C2 mais j'ai 100 produits sur 52 semaines et surtout si j'utilise le petit carré pour faire automatiquement il ne me fait pas ca correctement. il me fait :
='feuille1'!C2
='feuille1'!C3
='feuille1'!C4
or je voudrais plutôt: j'ai essayé de mettre ='feuille1'!C$2 mais ca ne marche pas
='feuille1'!C2
='feuille1'!D2
='feuille1'!E2

Je pense passer via VBS mais je ne connais pas suffisament bien pour bien automatiser le code:
Code:
Sub transpose_dans_tableau()
Sheets("Feuille1").Select
Range("A2:F2").Select
Selection.Copy
Sheets("Feuille2").Select
 // LA JE SAIS PAS COMMENT LUI DIRE DE FAIRE UNE TRANSPOSE EN GARDANT LES FORMULES POUR QUE JE TROUVE SUR LA FEUILLES 2 ='feuille1'!C2 ET PAS LES VALEURS DIRECTEMENT
End Sub


mon deuxième problème est sur la feuille 3, je souhaiterais avoir un menu de sélection déroulant genre:
Produit --selectionner--
A​
B​
C​

et que quand je clique sur A, il m'affiche :
Produit A
01 1
02 2
03 3

est ce possible via excel ?

Je vous remercie de votre aide

Cordialement.
 

Pièces jointes

  • test inventaire.xls
    15.5 KB · Affichages: 64
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Bonjour mam721 et bienvenue,

Je ne suis pas certain que ceux qui auront lu ton message auront nécessairement bien compris ... en tout cas moi, je n'en suis pas sûr! Un essai donc, en pièce jointe, en attendant déjà de voir si tu repasseras par ici :p

Pour aboutir au résultat que tu indiques en feuille3, la passage par la "transposition" en feuille2 n'était pas nécessaire (mais -avec ce que j'ai compris- je me suis dit que tu en avais peut-être besoin pour autre chose). Comme tu parlais de macro (en précisant que tu ne t'y connaissais pas énormément), j'ai travaillé par formules en feuille2.
Pour comprendre, il faut savoir qu'il y a trois plages nommées: "Produits", "Semaines" et "Données". Sous XL2003, regarde dans "Insertion" > "Nom" > "Définir" à quoi fait référence chacune des plages. En feuille2, les formules sont différentes en colonne A et colonne B. Elles commencent en ligne 4 et je ne les ai recopiées que jusqu'en ligne 99 (pour ne pas alourdir le fichier)
En B2 de la feuille3, une liste déroulante créée avec "Données" > "Validation". Là aussi, des formules différentes en colonne A et B, recopiées jusqu'en ligne 15.

Le tout est à tester, pour vérifier si j'ai bien compris et si les résultats sont toujours corrects avec plus de données. Tu nous diras ce qu'il en est!?
 

Pièces jointes

  • test inventaire V2.xls
    66 KB · Affichages: 106
  • test inventaire V2.xls
    66 KB · Affichages: 134
  • test inventaire V2.xls
    66 KB · Affichages: 141

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

Bonjour Modeste,

Tout d'abord merci de ton aide et de ta rapidité.

Ensuite, c'est presque ca !
j'ai regarder les fonctions et j'ai remplacé :
produits : =DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A$1:$A$107)-1) il y a pour le moment 107 produits
Je n'ai pas touché aux deux autres fonctions
par contre dans la feuille 2, je n'ai pas les chiffres. J'ai partout #N/A.

est ce que j'ai oublié de faire quelque chose ?

Pour la transposition, je risque d'en avoir besoin car apres je dois sur une autre feuille quelques chose comme :
Ce lien n'existe plus
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Re-bonjour,

Content de voir que tu n'as pas posté pour ... disparaître ensuite :)
Pour la correction à apporter à la plage nommée, tu as mille fois raison: j'ai été distrait! Je te propose d'ailleurs d'utiliser
Code:
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)
De cette manière, tu ne devras pas modifier en fonction du nombre réel de produits.

Par contre, j'avais testé (et viens de tester à nouveau, puisque j'aurais pu être doublement distrait :eek:) avec 252 produits et 14 semaines, ça fonctionne sans erreur chez moi!?
 

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

J'ai mis sous rapidshare juste poiur aujourdhui l exemple corrigé avec les modifications que je souhaite mettre en place

J'ai modifié par ce que tu viens de me donner:
Code:
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$B:$B)-1)
La colonne A sert pour une information supplémentaire
 

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Re²,

Pas vu tout de suite le lien dans ton avant-dernier message.
Je viens de tester avec,
  • pour Produit: "=DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$B:$B)-1)" (B, au lieu de A)
  • pour Semaines: "=DECALER(Feuil1!$C$1;;;;NBVAL(Feuil1!$1:$1)-1)" (attention au 1 en gras et bleu, qui remplace un 2)

En recopiant ensuite les formules en feuille 2, jusqu'en ligne 5726, les résultats semblent cohérents
 

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

Bonjour,

Je souhaiterais refaire ce que tu as fait en page 3 et le mettre sur la page 2.
Je n'arrive pas a avoir le menu déroulant comme tu l'as fait.
Peux tu me dire l'opération pour que je puisse le faire plus tard sans te déranger à chaque fois ^^

EDIT : Il faut faire validation des données choisir liste cocher liste déroulante dans la cellule et utiliser comme sources les cases que l'ont souhaitent voir et valider.

Code:
D1 : nb semaine     E1 : =NBVAL(semaines)
D2 : nb produits     E2 : =NBVAL(Produits)

H2 : Le produit      I2: (ici je voudrais mettre le menu déroulant comme tu l'avais fait en feuille3)

H4 : Produit
H5 : =SI(LIGNES($1:1)<=NBVAL(Matrice!1:1)-1;DECALER(Matrice!$C$1;0;LIGNES($1:1)
I5 :  =SI($H5="";"";INDEX(données;EQUIV($i$2;Produits;0);EQUIV($H5;semaines;0)))

J'ai aussi un problème que je ne comprends pas,
en H5, j'utilise la petit croix noir pour faire la opération pour les 52 semaines (il indique bien 201201 jusqu'a 201230) mais n'affiche pas de 201231 à 201252, je ne sais pas pourquoi.
Code:
=SI(LIGNES($1:1)<=NBVAL(Matrice!1:1)-1;DECALER(Matrice!$C$1;0;LIGNES($1:1)

Merci

EDIT 2 : problème résolu, il ne fallait pas laisser de cases vides, j'ai mis 0 dans les cases vides et ca à marché donc pas de soucis.
Merci Modeste ^^
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Bonjour,

Pour la liste déroulante en I2, sélectionne la cellule > Menu "Données" > "Validation de données" > Autoriser: "Liste" > placer le curseur dans la zone "Source", appuyer sur la touche F3 (les noms de plages devraient apparaître) et sélectionner "Produits" > Valider avec le bouton OK (aller voir éventuellement les options dans les onglets "Message de saisie" et "Alerte d'erreur", au préalable)

Pour la formule en H5, il faudrait (au moins) mettre des références absolues à
NBVAL(Matrice!$1:$1)
... pas certain que ça va résoudre le problème, mais c'est plus sûr de toute manière. Si ça ne change rien, Remets une version allégée de ton fichier (une dizaine de produits et 5-6 semaines), simplement pour qu'on ait une idée de la structure, même si toutes les données n'y figurent pas (pas d'accès à RapidShare pour tout le monde ni à tout moment de la journée)

Oups: pas rafraîchi et donc pas vu tes ajouts dans ton dernier message!
 

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

ca marche modeste merci.

Il me reste quelques trucs a rajouter dans la feuille 2, la consommation de la semaine N-4 à N.Je choisi une semaine dans l'année (exemple semaine 12), et dans une case en dessous j'ai le consommation de la semaine 09/10/11/12. Comment je dois faire ?
 

Pièces jointes

  • test inventaire V2.xls
    25.5 KB · Affichages: 31
  • test inventaire V2.xls
    25.5 KB · Affichages: 36
  • test inventaire V2.xls
    25.5 KB · Affichages: 31
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Bonsoir,

Si la plage C5:C8 ne contient pas de données numériques, la formule suivante en I8 me semble donner le résultat attendu:
Code:
=SOMME(DECALER($C$7;EQUIV($I$7;semaines;0);0;-4))

Pour ta validation en cellule I7, je te suggère d'utiliser la plage nommée "semaines" comme source: cela t'évitera de devoir redéfinir à chaque modification, la plage source.

Tu nous diras si c'est ok?
 

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

Bonjour Modeste,

Merci beaucoup encore une fois ^^

Je viens de tester ca marche.

J'ai encore besoin d'un petit service
Je souhaiterais une multiplication de données en fonction d'une valeur.

J'ai:
_ la feuille 3, le code de reference, la quantité et resultat.
_ la feuille 4, nom du produit, package (correspondant a une valeur numérique) et code reference.

Je souhaiterais que si la valeur dans la colonne 'feuille4.package' est supérieur à 1, on multiplie cette valeur avec 'feuille3.quantite' et quel soit affiché dans la colonne résultat.
Le probleme c'est que dans la feuille 3, il peut y avoir plusieur fois la code de reference car il y a des dates de fabrication differentes donc si c'est le produit A1A1 il peut apparatre plusieurs fois sur la feuille3 et une seule fois sur la feuille 4. Donc il faut qu il aile chercher la valeur package et le multiplier par la quantité et afficher ca dans résultat.
De plus l'ordre des code reference et l ordre nom du produit sont différents entre la feuille 3 et la feuille 4. je ne ne peux le changer. je dois donc faire attention à ça.

peut etre par : d'abord verifier en feuille3.coderef caode ref, puis rechercher en feuille4 la ligne ayant le meme code ref et récupérer la valeur de package et prendre cette valeur et la multiplier par la valeur en feuille3.quantite et mettre le resultat dans resultat

Merci
 

Pièces jointes

  • test inventaire V2.xls
    27.5 KB · Affichages: 34
  • test inventaire V2.xls
    27.5 KB · Affichages: 32
  • test inventaire V2.xls
    27.5 KB · Affichages: 33
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Bonjour mam721,

Je viens de lire ton message, d'ouvrir le fichier, puis de relire le message encore ... et je crains de ne pas avoir compris grand chose :confused:
Pourrais-tu confirmer que:
- le calcul doit se faire en colonne C de la feuille3 ("PLOP")?
- il faut retrouver le coderef correspondant à celui figurant en colonne A de cette même feuille, dans la colonne C de la feuille4 et "récupérer" le chiffre en colonne package. Ce chiffre étant à multiplier par la quantité mentionnée en colonne B de la feuille3!?

Jusque là ça doit être à peu près bon ... mais que doit-on faire si le même coderef apparaît plusieurs fois en feuille3? S'il n'apparaît qu'une seule fois en feuille4, on aura un seul package pour un coderef ... Faut-il, dans ce cas, faire un calcul particulier?
A la limite, le plus simple serait peut-être de nous soumettre un fichier représentatif (un même coderef avec plusieurs dates de fabrication, dans la feuille3, avec le résultat inscrit "à la main" là où une formule devrait le faire apparaître)
 

mam721

XLDnaute Junior
Re : transposition de donnée sur une feuille et menu de selection

Je pense que tu as bien compris.
j'ai mentionné les dates juste pour dire que les codes ref apparaissent plusieurs fois.

Je te donne un exemple en fichier joint.
 

Pièces jointes

  • test inventaire V2.xls
    32.5 KB · Affichages: 26
  • test inventaire V2.xls
    32.5 KB · Affichages: 32
  • test inventaire V2.xls
    32.5 KB · Affichages: 28

Modeste

XLDnaute Barbatruc
Re : transposition de donnée sur une feuille et menu de selection

Re-bonjour,

Je pense que tu as bien compris
... Pas sûr: je n'obtiens pas les mêmes résultats ... mais alors là, pas du tout!! :confused:

En C2:
Code:
=SI(ESTERREUR(INDEX(FEUILLE4!$B$2:$B$50;EQUIV($A2;FEUILLE4!$C$2:$C$50;0)));"";INDEX(FEUILLE4!$B$2:$B$50;EQUIV($A2;FEUILLE4!$C$2:$C$50;0))*$B2)
à recopier vers le bas
 

Discussions similaires