MACRO VBA: copie en fonction de critères

Vilipendboy

XLDnaute Junior
Bonsoir à tous,

il est 2h30 du matin et je n'en peux plus....je suis sur un projet de macro pour calculer mes résultats mensuels en seul clic et malheureusement ça coince...:p

Il y a encore quelques heures une partie du code marchait mais là plus rien...:eek: et je ne comprends pas pourquoi... Alors je viens chercher de l'aide.:D

Ci-après une explication de ce que je voudrais faire:

La première étape est de renommer les feuilles par canal (BASE, GROSSISTES, PHARMACIES, GRANDS COMPTES etc....)

Là, ça va sauf que je n'ai pas réussi à les mettre à la suite... Les 3 premières qui existent dans le fichier d'origine sont à la suite et dans l'ordre que je souhaite mais les autres se mettent avant la feuille BASE... Si quelqu'un pouvait m'indiquer comment générer des feuilles à la suite (à droite de BASE) ce serait super.

A noter la feuille BASE comporte les données source et ne doit pas être modifiée par ce qui suit:


2ème étape : extraire toutes les commandes passées sur le département 97 et de les coller dans la feuille EXPORT... Mon code ne marche pas....

3ème étape : extraire toutes les commandes par canaux (colonne C - P dans PHARMACIES, G dans GROSSISTES et V dans VISITEURS)... Mon code fonctionnait pour les P et G mais plus maintenant et je n'arrive pas à trouver pourquoi... En revanche, je n'ai jamais réussi à coller le canal V dans la feuille VISITEURS...

Pour cette étape, il existe en plus des conditions spécifiques qui sont:

- ne pas prendre de commandes du Dept 97 (elles sont collées dans EXPORT)
- ne pas prendre de commandes de clients spéciaux dont les numéros de clients sont spécifiés dans une liste ou dans le code VBA (colonne D - par exemple, clients 945196, 955449, 134500 et 314347... au hasard, mais la liste peut changer à la hausse comme à la baisse). Coller ces clients spécifiques dans l'onglet GRANDS COMPTES.


4ème étape:
Copier toutes les lignes dont les codes produits (colonne J) sont spécifiés dans une liste ou le code VBA (par exemple: produits 2570090, 2582383, 2582377, 2586599, 2553016) et les coller dans l'onglet PRESENTOIRS et LOTS. Dans cette feuille, après le collage , j'aimerais multiplier la colonne M (quantités) par un facteur attribué en fonction du code (16 ou 2 dans mon cas; par exemple; les codes 2570090, 2582383 correspondent à des présentoirs de 16 unités et le code 2553016 correspond à un lot de 2 unités). Ceci me permet de ramener mes présentoirs ou lots de 2 à l'unité et de pouvoir mesurer la performance globale des produits (toutes sous-références confondues).

Je remercie d'avance ceux qui voudront bien me consacrer du temps pour m'aider à réaliser ce projet.

Vilipendboy
fatigué
 

Pièces jointes

  • Fca54901 MACRO DE CALCUL DE STATS MENSUELLES.zip
    42.7 KB · Affichages: 34

Gruick

XLDnaute Accro
Re : MACRO VBA: copie en fonction de critères

Bonjour Vilipendboy,

Pour ta première étape :

Sheets.Add.Name = "GRANDS COMPTES"
Sheets("GRANDS COMPTES").Move After:=Sheets("PHARMACIES")
Sheets.Add.Name = "EXPORT"
Sheets("EXPORT").Move After:=Sheets("GRANDS COMPTES")
Sheets.Add.Name = "PRESENTOIRS ET LOTS"
Sheets("PRESENTOIRS ET LOTS").Move After:=Sheets("EXPORT")
Sheets.Add.Name = "VISITEURS"
Sheets("VISITEURS").Move After:=Sheets("PRESENTOIRS ET LOTS")

Si j'ai bien compris.

Pour ta deuxième étape :

pas trouvé de 97 dans les 666 (diable !) lignes donc....

A plus

Gruick
 

Vilipendboy

XLDnaute Junior
Re : MACRO VBA: copie en fonction de critères

Cool, merci pour la première étape. C'est exactement ce qu'il me fallait!!!

666 lignes, c'est un signe...C'est pour ça que ça ne marchait pas hier!... Belzébuth sort de cette macro!!!!

J'ai remis des commandes du Dept 97 dans le fichier joint (une erreur lors du nettoyage anonymisant (oui un nouveau mot) du fichier...)

Quelqu'un pour m'aider dans les étapes suivante???

A+ et merci d'avance

Vilipendboy
 

Pièces jointes

  • Fca54901 MACRO DE CALCUL DE STATS MENSUELLES.xls
    178.5 KB · Affichages: 51

Gruick

XLDnaute Accro
Re : MACRO VBA: copie en fonction de critères

Re,

Comprends pas trop...
Tes belges, tes andorrans sont-ils export ?
Tes réunionnais seront aussi dans la feuille grossistes.

Tes feuilles sont-elles des succédanés partiels de ta base ?

A te lire,

Gruick
 

Bebere

XLDnaute Barbatruc
Re : MACRO VBA: copie en fonction de critères

bonjour Vilipendboy,Gruick
mis le code ds 1 classeur
commentaires dans feuille listes
à bientôt
 

Pièces jointes

  • Code.xls
    29 KB · Affichages: 60
  • Code.xls
    29 KB · Affichages: 65
  • Code.xls
    29 KB · Affichages: 66

Vilipendboy

XLDnaute Junior
Re : MACRO VBA: copie en fonction de critères

Hello Bebere,
Hello Gruick,
Helloo Le Fil,

Bebere, Did I tell you that I love you?????? No?... C'est le cas! :p

Pour les questions concernant mes belges et mes andorrans, la réponse est "oui mais"... En fait tout est exception dans ma boite, l'Andorre rentre dans le chiffre France parce que fait par l'équipe France, la Belgique rentre dans l'export mais comme une personne de l'équipe France habite en Belgique, la dotation en produit qui lui est faite rentre bien dans le chiffre France.... Bref, un joyeux bordel tout ça!!!!

J'ai refait le test avec le département 97; ça marche bien pour l'extraction dans l'onglet Export. Comment faire pour que les commandes partantes sur le 97 n'apparaissent pas dans les onglets PHARMACIES et GROSSISTES (sinon ça me ferait les compter 2 fois)?

Je vais essayer (avec mon savoir limité) de toucher au code pour mettre les bons codes présentoirs et lots et les bons codes clients exceptions (d'ailleurs de la même manière, il ne faudra pas que ces clients exceptionnels (onglet GRANDS COMPTES) se retrouvent dans les onglets PHARMACIES ou GROSSISTES (et ça je sais d'avance que je ne sais pas faire...)

Un grand merci pour ton aide Bebere, je me mets dare dare au boulot

La Bise caus' you deserve it

Vilipendboy
 

Vilipendboy

XLDnaute Junior
Re : MACRO VBA: copie en fonction de critères

Re bonjour à tous,

j'ai cogité, j'ai essayé et j'ai pas réussi... Y en a un qui a dit Veni, vidi, vici moi c'est Cogiti, essayi, failli.... Je m'égare...:cool:

J'ai testé la macro sur mon fichier, ça marche très bien sauf que :

- rien dans l'onglet GRANDS COMPTES qui doit reprendre les commandes des codes clients indiqués en colonne A de l'onglet liste (Cf fichier joint)
- les onglets PRESENTOIRS et LOTS se remplissent de toutes les lignes de commandes dont la cible (colonne C) est V... (c'est le cas également pour l'onglet VISITEURS mais là, c'est bien ce qu'il faut faire). Normalement, il faudrait que cet onglet (PRESENTOIRS et LOTS) reprennent toutes les commandes dont le code produit (colonne J) figure en colonne C de l'onglet liste.
NB : Comme ces commandes (avec présentoirs et lots) peuvent se retrouver dans les onglets PHARMACIES et GROSSISTES, est-il possible de retraiter les informations pour que les lignes collées (dans PHARMACIES, GROSSISTES et PRESENTOIRS et LOTS) soient modifiées au niveau des quantités (colonne M) qui seraient multipliées par un coefficient déterminé en colonne E de l'onglet liste?...

- Pour l'export (Dpt 97), comment faire pour que les commandes sur le 97 ne figurent pas dans les données extraites dans les autres onglets (PHARMACIES, GROSSISTES, PRESENTOIRS etc...)?


Je joins le fichier et vous remercie de votre aide!
La Bise!

Vilipendboy
 

Pièces jointes

  • test CA mensuels.zip
    137.6 KB · Affichages: 46

Vilipendboy

XLDnaute Junior
Re : MACRO VBA: copie en fonction de critères

Salut Bebere,

Merci pour les modifications.
Les commandes Export (97) ne se retrouvent pas dans les autres onglets P et G- ça, c'est bon merci beaucoup!

En revanche, voilà ce que j'ai noté :

1 - onglet présentoirs se remplit des commandes dont la cible est V (pour visiteurs). Il devrait se remplir des lignes où apparaissent les codes produits (col J de la base) spécifiés en colonne E et G de l'onglet liste (avec en plus la modification des quantités x2 ou x16 selon que le code soit dans E ou G) - par ailleurs dans onglet liste : colonne C (les exceptions) = colonnes E et G (les x2 et les x16) donc col C me semble inutile...mais peut être que c'est nécessaire dans le code


Quand je lance la macro avec les codes que tu as mis au départ pour code2 et code16, la modification des quantités se fait bien dans les colonnes P et Q de l'onglet présentoir. Si je change avec les bons codes à prendre (cf onglet liste), ça ne marche plus..:eek:... j'ai modifié le code en mettant *2 et *16 (tu as mis /2 et /16), c'est peut être ça qui merde...

2 - Comme les quantités (col M de la base) de ces codes exceptions (col E et G, onglet liste) doivent être modifiées (x2 ou x16), ne faudrait-il pas d'abord screener toute la base en appliquant ces coefficients multiplicateurs puis faire les extractions dans les onglets? (Ces lignes, à l'inverse de l'export, doivent se retrouver dans les onglets Pharmacie, grossistes, grands comptes etc... Et dans l'idéal avec les quantités en col M modifiées du facteur affecté au code produit (col J)...

3 - l onglet GRANDS COMPTE ne se remplit pas avec les codes clients que j'ai spécifié... En revanche, il fonctionnait pour un code (104530) avec ceux que tu avais mis au départ...

Je crois que j'ai fait le tour, j'espère ne pas avoir été trop brouillon et je te remercie vivement de ton aide parce que là, ça dépasse de loin mes compétences...

A+
Vilipendboy
PS : je joins le fichier après macro (j'ai viré onglet export car PJ trop lourde sinon)
 

Pièces jointes

  • resultat macro.zip
    153 KB · Affichages: 50

Gruick

XLDnaute Accro
Re : MACRO VBA: copie en fonction de critères

Re,
Pas trouvé le temps (trop haché) pour poursuivre.
Mais Bebere était là...

Pouquoi ne ferais-tu pas des tableaux croisés dynamiques ?
- Par département, pour les export
- Par produit
- Par catégorie

C'est une idée

Gruick
 

Vilipendboy

XLDnaute Junior
Re : MACRO VBA: copie en fonction de critères

Hello,

un grand merci pour l'EXCELLENT travail!!!! Vraiment super, c'est ce qu'il me fallait et ça va me faciliter la vie!!!!

Effectivement, Gruick le croisé dynamique bonne idée sauf que la base est truffée d'exceptions à rentrer à la main et ça prend plein de temps pour avoir une base digne de ce nom (avec des critères supplémentaires par rapport au fichier d'origine), là dessus tu rajoutes le chef qui demande les résultats le 1er jour ouvré du mois à 8h05 et tu comprends pourquoi le VBA me sauve la vie...:D

Dans cette dernière mouture les 97 réapparaissent dans les autres onglets mais en comparant ce code avec le précédent je devrais y arriver...Sinon je te fais signe lol!!!

MERCI, MERCI et MERCI à Bebere!!!!!!

La Bise

Vilipendboy
 

Bebere

XLDnaute Barbatruc
Re : MACRO VBA: copie en fonction de critères

bonjour Vilipendboy,Gruick,le forum
une version sans les 97
à bientôt
 

Pièces jointes

  • CodesResultat.zip
    11.9 KB · Affichages: 40
  • CodesResultat.zip
    11.9 KB · Affichages: 43
  • CodesResultat.zip
    11.9 KB · Affichages: 41

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame