> Tous les forums > Forum Bureautique
 Ecrire un Code VBA
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
MisterA
  Posté le 22/01/2019 @ 09:21 
Aller en bas de la page 
Petit astucien

Bonjour à tous et mes meilleurs vœux pour cette année nouvelle qui sera je l'espère riche en diversité.Je remercie par avance tous ceux qui liront et essayeront de m'apporter leurs aides bienveillantes.Je mets en place un outil Excel d'analyse des ventes pour aider le service commercial non seulement à chiffrer les ventes réalisés par les commerciaux (représentant secteur) mais également à identifier les gros clients et les articles achetés.

Pour ce faire, j'aimerais qu'à partir d'une feuille de données brute appelée "MH" qui constitue notre base de données, des informations pertinentes soient dirigées vers la feuille "Références"

Dans cette feuille, je voudrais que lorsqu'un responsable secteur est sélectionné, la liste déroulante de ses clients soit active en D3 et puis fonction du client sélectionné, tous les articles achetés par ce dernier s'affiche à partir de la cellule "A17".

A ce niveau, je pourrais m'occuper d'insérer les formules qui rempliraient les colonnes CA N, CA N-1 et etc...

Sentez-vous libre d'ajuster la feuille "Références" à votre convenance si cela est utile.

Si vous ne comprenez pas bien la description de mon problème, je reste disponible pour répondre à vos questions afin d'apporter plus de précision.

Je joins ici le lien avec le fichier en question et je vous remercie encore une fois de plus.

https://www.cjoint.com/c/IAwirJI5HUK



[Configuration automatique à compléter]
Windows 10
Chrome 64.0.3282.140

Publicité
MisterA
 Posté le 22/01/2019 à 13:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je vous remercie d'avance pour votre disponibilité Astucien.

Je ne préfère pas utiliser le TCD parce que l'outil est à destination des commerciaux qui n'ont plus au moins pas de connaissance en Excel.

De plus ça m'enrichira davantage sur le code VBA.

MisterA
 Posté le 22/01/2019 à 13:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Gallagh autant pour moi

Gallagh
 Posté le 22/01/2019 à 14:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je viens de travailler un peu sur ton tableau. (j'ai voulu modifier mon message mais je l'ai supprimé par inadvertance)

je reste persuadé qu'un TCD est préférable car mettre du code vba c'est toujours un peu ardu. On peut réaliser des listes liées sans VBA.

J'ai donc fait une essai de listes liées mais c'est compliqué si on part sur ton tableau "brut" MH.

En fait, pour ce genre de choses, il faut d'abord créer une feuille de paramètres ou seront listés les articles, les clients , les responsables ... C'est cette feuille qui permettra de réaliser ensuite des listes liées.

Comme dit précédemment, j'ai peu de temps devant moi pour faire ce travail, d'autant que je ne sais pas si tous les clients/articles/... sont tous présents dans MH, et tu n'indiques pas non plus comment est alimentée cette feuille MH.

Tu peux expliquer ces points et peux tu créer ce tableau de paramètres ? 1 colonne de liste des responsables, 1 colonne liste des clients, un tableau article/prix



Modifié par Gallagh le 22/01/2019 14:06
Gallagh
 Posté le 22/01/2019 à 14:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

MisterA a écrit :

Gallagh autant pour moi

n'hésites pas aider, je ne suis pas sûr que je puisse tout réaliser

Gallagh
 Posté le 22/01/2019 à 18:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

MisterA

je ne vais pas pouvoir m'occuper de ton problème avant quelques jours.

Désolé, je me suis avancé un peu vite en te répondant.

Si c'est encore d'actualité, je reviendrais vers toi vendredi ou samedi;

MisterA
 Posté le 22/01/2019 à 20:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Gallagh,

C'est toujours d'actualité.

J'attends votre retour le Week-end dans ce cas.

Merci!!

MisterA
 Posté le 23/01/2019 à 08:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Gallagh,

C'est toujours d'actualité.

J'attends votre retour le Week-end dans ce cas.

Merci!!

Debrief
 Posté le 23/01/2019 à 09:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

@Gallagh, j'ai essayé de faire des listes sans doublon par formules mais comme le nombre de lignes est important ça ne permet pas des temps de réponse satisfaisants.

Je vais faire des listes via VBA qui ne pourront donc être actualisées que par macro, soit automatiquement sur un Sub Worksheet_Change() dans les colonnes concernées soit manuellement par bouton.
De toutes façons ces listes sont nécessaires pour la sélection dans la feuille Références.

Je vais aussi remplir la feuille Références via VBA car je ne suis pas très à l'aise avec les TCD. Je te laisserai cet exercice avec les listes constituées.

Cordialement,
D.

Publicité
Gallagh
 Posté le 23/01/2019 à 11:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Debrief

J'ai avancé un peu moi aussi.

Je combine listes et TCD.

Pour le moment j'ai lié le TDC à la valeur Representant. (voir la feuill 2, cellule A2). J'ai créé du VBA sur cette feuille.

Je n'ai pas encore réussi à crer la seconde liste Clients (en D2) qui serait liée au Représentant. Je n'ai plus souvenir comment faire cette opération, et je n'ai pas pris le temps de chercher.

Mais en tout cas, on génère un TCD qui donne pratiquement le résultat attendu, car si MisterA veut comparer les CA de chaque clients, il faut bien qu'ils soient tous dans le même tableau.

ici le lien Cjoint : https://www.cjoint.com/c/IAxkDYmT6nL

(Pour avoir le tri sur Clients en même temps, il faudra remettre du code VBA.)



Modifié par Gallagh le 23/01/2019 11:35
Debrief
 Posté le 23/01/2019 à 12:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut Gallagh,

Tu fais des trucs que je ne sais pas faire. Mais tu as sûrement raison d'utiliser les fonctionnalités TCD natives d'Excel.

Pour l'instant je n'ai avancé que jusqu'à la création / extraction des listes de valeurs uniques en VBA. J'ai essayé différentes méthodes (Formules, tri ou recherche + classement en VBA) mais compte tenu du nombre important d'Articles, c'est le tri Excel le plus efficace pour extraire les valeurs uniques, donc je passe par une copie temporaire de MH (non visible) pour faire cette extraction.

https://www.cjoint.com/c/IAxloAUASvf

En parallèle de ce que tu fais, je vais quand même essayer d'afficher les lignes correspondant à la sélection des critères dans la feuille Références.
Les critères étant listés sur la base des listes de valeurs uniques déjà construites.

D.

Debrief
 Posté le 23/01/2019 à 13:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour MisterA,

Il n'y a pas toujours de cohérence entre les libelles des titres de la feuille MH et ceux de la feuille Références.

Peux-tu indiquer la correspondance entre les deux ?

Idéalement la présentation (titres et ordre des titres) devrait être la même pour simplifier, et ajouter à la fin de Références, les deltas N et N-1.
Quel serait une liste de titre MH cohérente ?

- Article
- CA N
- CA N-1
- CA en QTE N
- CA en QTE N-1
- Portefeuille CA N
- Portefeuille QTE N

????

Cordialement,
D.

MisterA
 Posté le 23/01/2019 à 13:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Debrief,

CA N (chiffre d'affaire à date) dans la feuille MH correspond à CA N dans la feuille Référence

CA N-1 correspond à CA N-1

Idem pour les CA en quantité

Portefeuille correspond portefeuille CA N

Idem en quantité.

Libre à vous de les classer selon votre ordre. Pas de souci

Merci encore pour votre temps que vous prenez pour résoudre ce problème complètement difficile.

Gallagh
 Posté le 23/01/2019 à 14:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

en prenant 10 mn sur le temps de repas ,... et uniquement avec un TCD et les segments, c'est ultra simple.

dans le premier segment , on choisit le responsable de secteur, automatiquement, le segment clients s'adapte et propose les clients correspondants en début de liste.

Les clients grisés en fin de liste ne correspondent pas au responsable sélectionné.

Evidemment, il faut une version Excel 2010 ou supérieure.

Et il faudrait encore faire un peu de mise en forme.

Cjoint : https://www.cjoint.com/c/IAxnbYFLpxL

alain080
 Posté le 23/01/2019 à 15:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Bonjour,

Vous trouverez ci-joint votre fichier avec un bouton macro dans onglet "Références"".

Celui-ci va lancer un userform. Il vous suffira de cliquer sur un représentant, puis de sélectionner le client et enfin de cliquer sur le bouton de création de la liste (exportation des données vers la page "références".

Attention... quelques secondes d'attente dû au traitement vba et vos 130000 lignes de données.

https://www.cjoint.com/c/IAxoYaVKNOv

En espérant avoir satisfait votre demande

Alain

Gallagh
 Posté le 23/01/2019 à 16:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

alain080

un petit soucis de mon côté : je ne peux pas lancer un test sur ton fichier.

L'UserForm ne peut pas être créé. (Excel 2010)

A voir si MisterA aura plus de chance.

Debrief
 Posté le 23/01/2019 à 17:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai l'impression que je me suis complètement planté sur l'interprétation de ce qu'il faut faire.

Est-ce que ce le besoin consiste à:

- utiliser les filtres (colonnes filtrées) de la feuille MH pour isoler les éléments souhaités (Responsable Secteur et/ou Client et/ou Article)

- puis de reporter le résultat dans la feuille Références avec les informations de la feuille MH ainsi que des informations complémentaires issues de calculs (sommes, différences)

???

Publicité
MisterA
 Posté le 23/01/2019 à 17:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Messieurs merci pour vos efforts sans cesse.

Gallagh,

Je n'aurais pas opté pour un TCD mais je ferai avec.

Alain 080,

Votre fichier fonctionne chez moi mais les colonnes sont décalées:

Dans la colonne Article, je retrouve le nom du représentant et dans la colonne CA N-1, je retrouve le nom du client.

MisterA
 Posté le 23/01/2019 à 17:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Debrief,

C'est à peu près ce que je recherche.

Sélectionner un représentant, puis sélectionner le client rattaché à ce représentant et par référence, afficher le CA réalisé par ce client à l'année N, N-1, etc

Gallagh
 Posté le 23/01/2019 à 18:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

MisterA a écrit :

Messieurs merci pour vos efforts sans cesse.

Gallagh,

Je n'aurais pas opté pour un TCD mais je ferai avec.

Alain 080,

Votre fichier fonctionne chez moi mais les colonnes sont décalées:

Dans la colonne Article, je retrouve le nom du représentant et dans la colonne CA N-1, je retrouve le nom du client.

Les versions Excel depuis 2010 sont devenues vraiment très puissantes pour l'analyse par TCD. Autant se servir des fonctions intégrées.

Le travail de Alain080 est très certainement bien réalisé, màis avec toujours cette incertitude du tout VBA, à savoir qu'il faut une très grande rigueur dans les adressages, et dans l'agencement des tableaux. Tu n'as pas dit comment tu alimentes la feuille MH mais la moindre modification va poser problème.

Avec un TCD, on arrive malgré tout à récupérer rapidement ses informations sans replonger dans le code VBA.

Debrief
 Posté le 23/01/2019 à 20:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je suis assez d'accord que le TCD est la solution à utiliser en priorité. A condition évidemment de maîtriser les TCDs .

Sinon un alternative moins standard mais peut-être plus adaptable est le VBA. A condition évidemment de maîtriser le VBA .

C'est ce que j'ai fait en reportant la feuille MH sous sélection en feuille Référence sans être sûr de la source des totaux pour QTE (à vérifier par MisterA et indiquer ce qu'il faut corriger dans les formules générées).

Le code est assez court mais fait appel à des petites choses spéciales comme retrouver le(s) critère(s) de sélection d'une feuille filtrée.
Pour que ça reste aussi modifiable que possible, les colonnes et positions de cellules sont définies en constantes en tête de la procédure principale, faciles à modifier sans avoir à rentrer dans le code.

https://www.cjoint.com/c/IAxvbrk3yRf

Edit: correction d'un bug sur la récupération des critères de sélection quand plus de 2 critères (subtil Excel :)



Modifié par Debrief le 23/01/2019 22:01
Gallagh
 Posté le 23/01/2019 à 20:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Debrief a écrit :

Je suis assez d'accord que le TCD est la solution à utiliser en priorité. A condition évidemment de maîtriser les TCDs .

Sinon un alternative moins standard mais peut-être plus adaptable est le VBA. A condition évidemment de maîtriser le VBA .

C'est ce que j'ai fait en reportant la feuille MH sous sélection en feuille Référence sans être sûr de la source des totaux pour QTE.

Le code est très court mais fait appel à des petites choses spéciales comme retrouver le(s) critère(s) de sélection d'une feuille filtrée.
Pour que ça reste aussi modifiable que possible, les colonnes et positions de cellules sont définis en Constantes faciles à modifier sans avoir à rentrer dans le code.

https://www.cjoint.com/c/IAxs6VUqNwf

Oui, c'est pas faux non plus ......

mais de toutes façons, il y avait une solution encore plus simple qui consiste à transformer MH en tableau dynamique et à utiliser les filtres. Tous les calculs s'appliquent uniquement aux lignes visibles, on filtre ... et le tour est joué !

MisterA
 Posté le 24/01/2019 à 09:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Debrief,

C'est à peu près ce que je recherche.

Sélectionner un représentant, puis sélectionner le client rattaché à ce représentant et par référence, afficher le CA réalisé par ce client à l'année N, N-1, etc

Debrief
 Posté le 24/01/2019 à 09:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

C'est ce que j'ai programmé en VBA comme indiqué précédemment. La sélection faite sur MH est, par un bouton, reportée en Références et des formules sont crées par programme pour les calculs CA, QTE, N, N-1.

Je pourrais ajouter des calculs pour chaque ligne également mais si je ne l'ai pas fait c'est que la feuille MH n'est pas très claire car il y a N, N-1, 2019 (?) et des libellés que je ne comprends pas.

Cordialement,
D.

MisterA
 Posté le 24/01/2019 à 10:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Debrief,

Ne vous préoccupez pas de la colonne CA 2019 et QTE 2019, pas d'importance.

Le fichier MH est généré par BO provenant de SAP.

Quel autre libellé ne comprenez-vous pas?

Debrief
 Posté le 24/01/2019 à 13:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

En fait si l'"export" de la sélection de la feuille MH en feuille Référence telle que programmée actuellement vous convient, on en reste là.

Si vous souhaitez des ajouts / modifications, il faut les spécifier.

D.

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Aucun sujet pertinent lié trouvé
 > Tous les forums > Forum Bureautique