Completer feuille par boucles ou autres ?

Bonjour à tous,

Je cherche une âme charitable pouvant m'aider dans la résolution de mon problème.

Je ne sais pas si je suis dans le vrai en parlant de BOUCLES, Excel est tellement vaste et puissant que je ne sais pas comment faire ou par quoi commencer. Je précise que je suis un débutant (quelques commentaires dans le code serait les biens venus).

En résumer, dans un classeur je possède 4 feuilles (A1, B1, C1 et BASE) comme dans l'image ci jointe. Je remplie ma feuille BASE et je souhaite par un bouton compléter les 3 autres feuilles comme sur l'image à droite. Je joins le classeur Excel.

D'avance merci.

pigneau
8pigneau.xlsx (20.44 Ko)

Edit Dan : modifé titre du sujet

Bonjour,

Avec un TCD,

EDIT du fichier , trompé de colonne.

9pigneau.xlsx (24.68 Ko)

Bonjour,

Avec du code

Cdlt

14pigneau.xlsm (27.16 Ko)

Salut fg2b,

Je n'ai pas encore testé mais c'est ce que je cherchais. Mille merci, tu m’enlèves une grosse épine du pied. Je lis ton code et je comprends pas tout mais avec les tutos je pense m'en sortir.

Salut thrrybo,

Merci pour la piste que je ne maitrise absolument pas, je ne connaissais pas, mais j'ai cru comprendre que tu utilises les tableaux croisés. Je regarderais cela d'un peu plus près car celle-ci est également intéressante.

Vos partages peuvent servir à tous. Pour les administrateurs, je mettrai résolu lorsque j'aurais testé les méthodes.

Bonne semaine à tous.

Bonjour à tous,

Power Query permettrait aussi de fournir une solution. Des formules pourraient être utilisées également ... Mais il aurait été utile de préciser le "contexte" : la manipulation est à faire 5 fois par jour ou 2 fois par an ? Quel est le volume de données à traiter (quelques lignes comme dans l'exemple ... ou quelques milliers) ?

Tant qu'à faire, ne prends pas l'habitude de fusionner des cellules ... d'autant qu'ici, augmenter la largeur de ta première colonne donnerait le même "effet"

Bonjour U.Milité,

Merci pour ton retour très formateur, je serais plus précis dans l'exposé de mes recherches la prochaine fois si besoin mais c'est difficile de mettre dans un simple message tout ce qu'il faut.

Le fichier fourni n'était qu'un exemple afin de tester les différentes possibilités, concernant Power Query je ne le maitrise pas et comme je l'ai indiqué, je suis débutant et Excel est très puissant. J'ai pu lire que pour un même résultat il pouvait y avoir une multitude de façon de faire.

Le fichier original possède 6 feuilles dont BASE et A1, A2, A3, A4, et A5 (les feuilles Ax correspondent aux semaines dans 1 mois, je sais les mois à 5 semaines sont très rares. La manipulation peut se faire plusieurs fois par jour.

Pour les données à traiter il n'y a que vingt lignes à traiter dans la feuille BASE et autant dans chaque feuille Ax. Concernant la fusion des cellules B, C D, j'ai voulu que cela corresponde exactement à ce qui je suis entrain de faire dans mon original, j'ai besoin que les premières lignes possèdent des cellules non fusionnées.

Re,

Si tu disposes d'un tableau complet, l'intérêt de le répartir systématiquement entre 5 autres feuilles ne saute pas aux yeux : on pourrait "se contenter" d'une seule feuille (en plus du tableau complet) où on extrairait "à la demande" les données d'une semaine ou une autre.

Une solution par formules en pièce jointe (comme ça tu auras une solution de plus). Sélectionner une valeur en B1 de la feuille "Semaine", les formules sont recopiées jusqu'en ligne 22

10pigneau.xlsx (17.73 Ko)

Re, re

Comme je le dis, plusieurs solutions mais la tienne dépasse mon entendement et surtout mon raisonnement.

Si je comprends ta formule, elle se cale en B3 feuillet BASE, puis feuillet "semaine" en B1 sur la liste puis en BASE en C2 :E2 pour la plage.

Le critère 20 = les 20 lignes pour la copie.

Ainsi, si j'ai 5 semaines il faut que je passe la plage en C2:G2.

J'espère avoir compris le raisonnement de ta formule et je te remercie grandement de ta contribution. Quand on voit le résultat cela parait tellement simple.

Encore un très grand merci.

Re²

Apparemment tu as vu qu'il y avait une plage nommée "semaine", si je lis tes commentaires

Les hypothèses concernant les 20 lignes et la plage à étendre en C2:G2 sont tout à fait correctes

Depuis tout à l'heure je tente de comprendre les formules dans les colonnes "produit" et "quantité", et là c'est du chinois, et je ne veux surtout pas te vexer.

J'en avais jamais vu de pareil surtout "Produit". J'ai peut être compris le début mais après je suis perdu. L'essentiel pour moi c'est que tu vas certainement me faciliter le travail.

Bonsoir U.Milité

HELP HELP HELP ou SOS SOS SOS

Bon, j'ai passé une bonne partie de l'après midi et de la soirée afin de comprendre pourquoi je ne pouvais pas adapter ta formule à mon formulaire mais là c'est impossible pour moi.

Je sais que je dois modifier UN paramètre mais je ne sais pas où car dans ton exemple feuillet BASE les produits démarre en A3 alors que moi ils sont en A13.
Obligatoirement j'ai des erreurs sur la suite du tableau car de A3 dans ton exemple je suis en A13. Où dois ajouter ces 10 lignes.

Bonjour,

Tu as raison sur un point : il y a de multiples manières d'arriver au même résultat (et peut-être la proposition de Thrrybo de travailler avec un TCD était-elle moins traumatisante pour les neurones ?)

La plage nommée "semaine" permet -en fonction de ce qui est sélectionné en B1 de la feuille "Semaine"- de définir une plage de cellules (en feuille "BASE") correspondant à une des colonnes A1, B1, C1. On aurait pu écrire la formule de cette manière :

=DECALER(BASE!$B$3;;EQUIV(Semaine!$B$1;BASE!$C$2:$E$2;0);NBVAL(BASE!$B$3:$B$26))

Le '20' que tu avais relevé hier est remplacé par NBVAL(BASE!$B$3:$B$26) on n'étend ainsi la plage que sur le nombre d'articles en colonne B.
Si tu avais défini un tableau pour la plage en feuille BASE, on aurait encore pu s'y prendre autrement ...

Si A1 est l'élément sélectionné en B1 de la feuille Semaine, la plage nommée semaine correspond à la zone encadrée de vert ci-dessous :

image

Les formules pour les colonnes produit et quantité ont en commun qu'elles utilisent INDEX(), PETITE.VALEUR() et SI()

Avec la partie SI(Semaine>0;LIGNE(Semaine)-2), c'est un peu comme si on utilisait "virtuellement" une colonne supplémentaire pour afficher les n° de lignes ou des quantités figurent :

image

Ces chiffres correspondent au n° de ligne dans la feuille. Nous avons besoin de la position de chaque élément dans la plage $B$3:$B$26. C'est la raison d''être du -2 ! Si tes données commencent en A13 (tu auras vraisemblablement un '-12')

PETITE.VALEUR permet simplement d'aller chercher (parmi ces n° de lignes) la plus petite valeur au rang 1, puis au rang 2, etc.

Pour comprendre, la seule solution est de "décomposer" la formule ... et ça prend du temps, inévitablement ! (mais les macros aussi, pareil pour les TCD et également pour Power Query ... c'est le côté passionnant d'Excel !)

N'hésite pas, si ce n'est pas encore clair !

Salut U.Milité,

Désolé de l'absence mais je rentre du taf. J'ai parcouru en travers ton dernier post et je te remercie de passer un peu de temps avec moi et mes 2 neurones mais je vieillis et cela ne va pas en s'arrangeant ...

Effectivement, tes formules pour moi c'est du balaise, du chinois mais j'avoue que ta solution me plait bien et j'espère arriver à mes fins (avec ton aide si tu le veux bien). J'ai les idées mais je manque de connaissances. Heureusement qu'il y a ce site et bien d'autres ainsi que des Youtubeurs.

Donc, je me souviens lors de ton premier post tu m'avais conseillé d’éviter la fusion des cellules et effectivement un Youtubeur de Excel (peut être Alex ROBIN) avait évoqué dans son sujet "Centrer une cellule sur plusieurs cellules sans fusionner" et il en avait expliquer les raisons notamment au niveau des formules et le reste.

Donc à la lumière de tous cela, je suis entrain de revoir ma copie et la structure même des feuillets en faisant en sorte d'éviter ces fusions. Une fois que cela sera opérationnel je reviendrai vers toi en fonction de tes dernières explications que tu as bien voulu partager.

A très bientôt.

Re U.Milité

Structure de mes fichiers revus. Il y a beaucoup moins de cellules fusionnées et cela facilite mes macros.

J'ai tapé manuellement les formules en prenant soin de prendre mes références de plage et autre mais à faire.

1 = Feuillet "BL" toi "Semaine" Formule dans colonne DÉSIGNATION PRODUIT

=SI(NBVAL(Semaine)>=LIGNES($1:1);INDEX(FPARTICULIER!$A$13:$A$32;PETITE.VALEUR(SI(Semaine>0;LIGNE(Semaine)-12);LIGNES($1:1)));"")

Je suppose que LIGNES($1:1) fait référence à ligne 1

FPARTICULIER!$A$13/$A$32 c'est ta feuille BASE avec ma fameuse plage A13 à A32

LIGNE(Semaine)-12 correspond à mes entêtes de colonne

2 = Feuillet "BL" Formule dans colonne QUANTITE

=SI(A13="";"";INDEX(Semaine;PETITE.VALEUR(SI(Semaine>0;LIGNE(Semaine)-12);LIGNES($1:1))))

Étrangement lorsque je valide mes deux formules il m'ouvre mon gestionnaire de fichier avec en entête de fenêtre "Mettre à jour les valeurs : Semaine"

et mes cellules affichent #REF! quand je fais Affichage et gestion des étapes il m'affiche voir ci contre

referencement

3 = Gestionnaire de noms Formule dans Semaine

=DECALER(FPARTICULIER!$A$13;;EQUIV([Semaine]Semaine!$L$8;FPARTICULIER!$B$12:$F$12;0);20)

$L$8 c'est où se trouve ma liste déroulante

$B$12:$F$12 Plage de mes entêtes de colonne

Je sais plus...

C'est bon, j'ai trouvé comme cela fait du bien.

Bonjour,

Tant mieux si tu as trouvé (avec une image plutôt qu'un fichier, on aurait tâtonné un moment !)

La formule pour la plage nommée =DECALER(FPARTICULIER!$A$13;;EQUIV([Semaine]Semaine!$L$8;FPARTICULIER!$B$12:$F$12;0);20) contenait des choses "étranges" : le "Semaine" entre crochets, suivi de "Semaine!" (le '!' indiquant qu'il s'agit du nom d'une feuille )

Bonne continuation et bon amusement avec Excel

Bonjour,

Effectivement il y avait des choses bizarres sur le comportement des formules. J'ai peut être une explication et j'ai bien dit peut-être car non expert.

Je travaille avec deux écrans et j'ouvrais systématiquement mon fichier et ton fichier. J'ai fait plusieurs tentatives de modifications et malgré cela j'avais toujours des erreurs du style #NA ou #REF ou parfois rien. Je me suis fait même un copie de tes formules dans un fichier txt pour les avoir devant les yeux mais rien à faire. Je pensais que mes formules faisait référence à "Semaine" de mon fichier mais en fait il fait référence à ton "Semaine". Je l'explique par le fait que lorsque je validais ma formule il ouvrait systématiquement un explorateur comme je te l'ai mentionné. J'ai donc fermé ton fichier et refait tes formules dans mon fichier et miracle mon "Semaine" s'affichait en bleu lors de la saisie de la formule. C'est, vers un peu plus de minuit que j'ai pu enfin faire fonctionner la bête.

Je te remercie pour tes retours, tes conseils et ta patience . Je mesure à quel point Excel peut être très très puissant et certainement que sa puissance dépasse mon entendement. Sans ton intervention et ton aide mes 2 neurones seraient toujours entrain de se courir après.

Maintenant, je vais chercher et travailler sur la liste "Choisir le BL" afin de copier le numéro du BL dans une cellule différente se trouvant dans la feuille FPARTICULIER mais on sait jamais, si tu as une piste je suis preneur.

Bonne fin de journée et bon courage.

Re,

À nous deux, on doit bien avoir 4 neurones ... du coup, ça nous fait du 200% !
Si tu as une autre demande (clôture ce fil-ci et ouvre une nouvelle discussion ... mais avec un fichier exemple pour illustrer : pas une capture d'écran)

Comment fait-on pour clôturer LON

C'est bon j'ai clôturé.

Rechercher des sujets similaires à "completer feuille boucles"