VBA pour Dispatcher des palettes

Bonsoir à Tous,

ce soir je fais appel aux professionnels de VBA.

ma requête est la suivante:

*** j'ai un fichier qui contient plus de 700 onglets nommés PaletteN°1, PaletteN°2, PaletteN°3.....Feuil1...

*** dans un onglet Feui1, on trouve un fichier qui contient les ventes globales des articles réparties par Magasins

*** dans les feuilles PaletteN°1,..., on trouve dans la colonne B et la colonne A les codes des articles (on passe à la colonne A en cas d'erreur de code en colonne B), dans la colonne C on trouve les quantités correspondantes, dans la colonne D et la colonne E on trouve les libellés des articles recherchés d'une autre feuille dans le classeur, et de la colonne F à la colonne BJ on trouve les noms des magasins de Mag1 à Mag57, dans chaque colonne de ces derniers on trouve les ventes correspondantes rapportées de la feuil1 et qui correspondent aux codes qui se trouvent dans les colonnes A & B.

Si on prend par exemple la feuille PaletteN°1, on trouve dans les lignes 41 & 42 et sous les colonnes F à BJ, les pourcentages calculés sur la base du taux de présence des quantités vendues en colonne F à BJ par rapport à la colonne C. le taux est calculé suite à un paramétrage défini au préalable (par exemple quantité par ligne dans colonne F=quantité par ligne dans colonne C, ou <, ou >).

ma demande suite à ces données.

1) Nommer la Cellule A1 par le nom de l'onglet dans toutes les feuilles du classeur

2) un Tri se fait dans la ligne 42 le 1er (calculé sur la base du rang du taux le plus fort en ligne 41 pour le cas de la feuille PaletteN°1)

(ce n'est pas 41 et 42 pour les autres feuilles), le 1er le nom de Mag?qui correspond sera le nom de l'onglet(je reviens à la feuille PaletteN°1 sera nommée Mag14).

3) dans cette feuille qui est renommée Mag14, les quantités qui se trouvent dans la colonne C doivent êtres déduites des ventes globales qui se trouvent dans la feuille1, et ainsi de suite pour la PaletteN°2 on fait la même chose que précédemment , la PaletteN°3 de même........jusqu'à la dernière Palette.

je sais que c'est difficile de comprendre mon besoin, et mon fichier est très lourd. si vous êtes intéressés par ma requête renseigner moi sur la façon d'envoyer ce genre de fichier.

merci infiniment pour votre intérêt.

Bonjour

Pas tout lu, trop de chiffres on s'y perd facilement

Un fichier allégé seulement quelques onglets, quelques magasins et surtout un exemple(ou plusieurs - utilises des couleurs) pour faire voir ce que tu veux obtenir

Laisse la feuille Palette 1 on peut suivre tes explications

Bonsoir

dans la feuille PaletteN°1 , j'ai fait Copier-Coller Valeurs

dans la feuille1 j'ai rédui un nombre trés important des lignes.

pour plus des renseignements, je suis à la disposition

55test2.xlsm (167.62 Ko)

Bonjour

Pour bien être sur

Dans chaque page

On marque dans la cellule A1 le nom de la page

On fait un tri de la zone F3;BJ42 (la dernière ligne bien sur - 42 c'est pour "PaletteN°1") en fonction du pourcentage ligne 41

On renomme la page en fonction du nom du magasin qui arrivera en tête - sur 700 pages il risque d'y avoir plus d'une fois le même magasin en tête - on fait quoi ?

On déduit dans la page "Feuille1" colonne BH la quantité de chaque produit

Que se passe t'il si l'on appuie une nouvelle fois sur le bouton de la macro ?

Bonsoir

je veux suivre point par point votre algorythme.

1) oui on marque dans la cellule A1 de chaque feuille le nom de la page avant toute modification au niveau des noms des onglets.

2) oui on renomme la page selon filtrage du pourcentage (la formule du calcul se trouve dans la cellule F42 de la feuille PaletteN°1

la page dans ce cas sera nommée Mag14_1

3) Aprés déduction des quantités des 33 articles qui se trouvent dans la colonne C de la feuille PaletteN°1 de la colonne du Mag14 de la feuille1, à ce moment la macro agit de nouveau sur la feuille suivante (PaletteN°2) dans mon fichier.

4) Supposons que dans la feuille PaletteN°2 le filtre du grand pourcentage nous donne le même magasin, on renomme la feuille par Mag14_2 enrespectant toujours le même processus.

5) je corrige la dernière ligne de votre algorythme, on déduit les quantités de la colonne P et par conséquent ça se déduit automatiquement dans la colonne Total Général BH.

je pense que je suis clair cette fois ci.

merci d'avance pour votre intérêt.

34test2.xlsm (157.79 Ko)

Bonjour

Voilà une première version

A tester

Bonsoir

ça fonctionne en partie, mais le point le plus important ne fonctionne pas.

ce point là où on doit déduire les quantités existantes dans la feuille PALETTE du Mag trié en premier lieu des quantités du même Mag de la feuille1 avant de relancer la moulinette de la macro dans la feuille PALETTE suivante.

j'ai joint un fichier comportant plus des feuilles.

29louja.xlsx (295.71 Ko)

Bonsoir

C'est bien toi qui a marqué cela ?

louja a écrit :

5) je corrige la dernière ligne de votre algorythme, on déduit les quantités de la colonne P et par conséquent ça se déduit automatiquement dans la colonne Total Général BH.

Si tu avais marqué que c'était dans la colonne du magasin placé en tête, cela aurait évité une version

A tester

bonsoir

tout d'abord merci pour votre aide.

lorsque vous exécuter la macro ,vous remarquez que la PaletteN°8 se renomme en Mag24_8, mais les quantités en colonne C de cette page ne se sont pas déduits de la feuille 1 colonne Z se rapportant de Mag24.

merci d'avance

Bonsoir

Normal

Tu m'as fourni un fichier sans la macro, du coup j'ai ouvert l'autre fichier avec la macro, fais du copier/coller, et j'ai travaillé sur la macro

A la fin j'ai bien sauvegardé le nouveau fichier et l'autre je l'ai fermé sans l'enregistré (pas de raison pour)

Mais tu l'as compris j'ai travaillé sur la mauvaise macro

J'espère que c'est bon

A tester

Bonsoir Banzai64,

le fichier est bon à 80%.

je repête littérairement comment ça doit fonctionner la macro.

1) les valeurs qui se trouvent dans les colonnes Mag1 jusqu'à Mag57 sont recherchés de la feuil1 selon les codes qui se trouvent dans les colonnes B des feuilles Mag1 à Mag57

2) la macro commence par la feuille Palette N°1, elle classe les Mag de 1 à 57 par ordre décroissant (classement juste dans votre réponse).

3) le Mag classé premier , la feuille Palette sera npmmé Par son nom (c'est juste aussi)

4) les quantités dans la colonne c seront déduites de la colonne du même magasin dans la feuille1 ( c'est juste aussi)

c'est qui n'est pas fait dans la macro c'est le suivant:

1) dans la feuille PaletteN°2, la macro doit chercher les nouvelles valeurs dans la feuille1 du Mag classé 1er dans la feuille précédente, les mettre dans la colonne du dit Mag dans la feuille Palette N°2 , à ce moment là le classement se déclenche por cette feuille et le Mag classé 1er subit les mêmes opérations que précedemment.

merci d'avance

Bonjour

louja a écrit :

le fichier est bon à 80%.

En changeant les règles il ne sera jamais bon

Ta demande

louja a écrit :

1) Nommer la Cellule A1 par le nom de l'onglet dans toutes les feuilles du classeur

2) un Tri se fait dans la ligne 42 le 1er (calculé sur la base du rang du taux le plus fort en ligne 41 pour le cas de la feuille PaletteN°1)

(ce n'est pas 41 et 42 pour les autres feuilles), le 1er le nom de Mag?qui correspond sera le nom de l'onglet(je reviens à la feuille PaletteN°1 sera nommée Mag14).

3) dans cette feuille qui est renommée Mag14, les quantités qui se trouvent dans la colonne C doivent êtres déduites des ventes globales qui se trouvent dans la feuille1, et ainsi de suite pour la PaletteN°2 on fait la même chose que précédemment , la PaletteN°3 de même........jusqu'à la dernière Palette.

Il n'a jamais été question de

louja a écrit :

1) dans la feuille PaletteN°2, la macro doit chercher les nouvelles valeurs dans la feuille1 du Mag classé 1er dans la feuille précédente, les mettre dans la colonne du dit Mag dans la feuille Palette N°2 , à ce moment là le classement se déclenche por cette feuille et le Mag classé 1er subit les mêmes opérations que précedemment.

Bonsoir

je ne vois pas où est la contradiction dans mes écrituresn sauf que j'ai expliqué littérairement

la moulinette du macro et comment ça doit être fonctionner.

merci en tout cas pour votre aide.

Bonsoir à Tous

Je remercie Banzai64 pour sa contribution pour m'apporter une aide,

mais je fais appel aux professionnels de VBA pour compléter le travail de Banzai64.

merci d'avance.

Bonsoir à Tous

j'ai toujours cru à ce forum, c'est pour cette raison que j'en suis sûr et certain que Banzai64 ou quelqu'un d'autre va m'apporter une aide dans cette requête

Bonsoir

Quand tu dis à quelqu'un "C'est bon à 80%" cela veut dire "Tu n'as pas fait le travail que je t'ai demandé"

En plus tu ne dis pas merci

Ensuite quand tu emploies "Je répète" cela veut dire "Je l'ai déjà dit, t'as rien/mal compris, alors je répète"

Le jour, où je serai ton employé, tu pourras te le permettre de me parler comme-ça (avant que je ne te fracasse)

Je veux bien essayé de t'aider

Il faut expliquer

louja a écrit :

la macro doit chercher les nouvelles valeurs dans la feuille1 du Mag classé 1er dans la feuille précédente

Nouvelles valeurs : On ne modifie aucune valeur dans cette page, il ne peut y avoir de nouvelles valeurs

Alors tu détailles exactement ce qu'il faut faire (quelle valeur, de quelle cellule, de quelle page, vers quelle cellule, dans quelle page ....)

Bonsoir Banzai64

tout d'abord, je veux m'excuser si je me suis mal exprimé dans mes messages précédents, mais croyez moi, je vous considère un professeur pour moi, et j'ai tout le temps respecté mes professeurs. et si vous revoyez mes messagges vous allez vous rendre compte de mes remerciments répétitifs pour vous.

maintenant je reviens à mon sujet, dans le fichier joint j'ai mis un exemple dans la première ligne du tableau.

1) Avant d'éxécuter la macro:

a) dans Palette N°1 on trouve dans les colonnes Mag1 jusqu'à Mag57 les quantités qui se trouvent à la feuille1 et qui correspondent aux codes qui se trouvent dans la colonne B, Ex: B4(11111111) en Mag14 on trouve 300, quantité renvoyée de la feuille 1 colonne Mag14

b) un classement se fait par ordre décroissant, ici Mag14 sera classé 1er

2) aprés l'éxécution de la macro

a) l'onglet Palette N°1 sera nommée Mag14_1

b) les quantités qui se trouvent dans feuil1Mag14 se mettent à jour (déduction des quantités qui se trouvent en colonne C)

c) dans la palette N°2 les colonnes Mag1 jusqu'à Mag57 seront renseignées par les quantités qui se trouvent en feuille1

dans cet exemple pour B4 (11111111)en Mag14 on trouvera 210 (300-90)

puis on suit le même processus.

d) dans la palette N°3 , on trouve pour B4 en Mag14 on trouvera 160 (210-50) et ainsi de suite.

Merci professeur.

Bonjour

C'est complètement différent de ce que j'avais imaginé

Une question : Les données actuelles dans les pages palettes sont elles conformes aux données de la page "Feuil1" ?

Ou alors il faut toutes les reprendre lorsque l'on change de feuille

Dans le 1er cas on ne mettra à jour que les données du magasin modifié , dans l'autre cas il faut modifier tous les magasins (risque de prendre du temps)

  1. Feuille Palette classement
  2. Changement de nom
  3. Mise à jour du magasin classé 1er dans la page "Feuil1"
  4. Feuille suivante : mise à jour du(des) magasin(s) à partir de la page "Feuil1" (à préciser)
  5. Recommence en 1

Bonsoir

En réponse à la première question:

il faut remplir les données des magasins modifiés.

dans ce cas lorsque la macro agit sur la PaletteN°2 les quantités qui se trouvent à la feuil1Mag14 et qui correspondent aux codes en colonne B.

et ainsi de suite.

merci Professeur.

Bonjour

Stop au professeur

A vérifier soigneusement (je me mélange les yeux)

Rechercher des sujets similaires à "vba dispatcher palettes"