Gestion de marchés - Tableaux Croisés Dynamiques

fabian123

XLDnaute Occasionnel
Bonjour à toutes et tous!


voilà mon souci (pour une fois, pas de problème de code ou de formules, juste de mise en page!!)


je vous passe le détail complet de mon projet, je vais juste détailler le problème que j'ai! (mais si vous voulez plus d'infos, pas de souci, j'expliquerai!)

donc, mon problème:

j'ai une liste de maraichers qui participent tous aux marchés de la région!

chaque maraicher peut faire un ou plusieurs marchés évidemment!
et chaque maraicher peut avoir un abonnement ou non sur les marchés auxquels il participe (il peut donc faire par exemple trois marchés et être abonné sur seulement un des trois)

pour pouvoir renseigner tout cela, j'avais pensé à un userform avec deux listbox. une contenant la liste de tous les marchés et l'autre, vide au démarrage et qu'on viendrait alimenter avec les marchés fréquentés par le marchand. Entre les deux listbox, deux boutons qui permettent de transférer les marchés d'une listbox à l'autre.

jusque là, ça me paraissait bien!

Mais voilà mon souci: les abonnés!
En effet pour cela je pensais mettre un checkbox qui, s'il est coché voudrait dire que le marchand est abonné.
Seulement avec mes listbox, ça donne pas un résultat très joli ni très pratique!

J'aurais donc besoin de vos avis, idées, conseils pour mettre en "page" tout cela et que se soit joli et pratique

En gros l'idée, c'est de sélectionner tous les marchés effectues par le marchand et d'ensuite renseigner ceux ou il est abonné...

Merci d'avance pour vos idées!!!

PS: je sais que c'est beaucoup plus simple si j'utilisais Access, mais j'ai pas au boulot et le service informatique refuse d'installer quoi que ce soit sur les machines!! Donc, faut que je me débrouille avec Excel!
 
Dernière édition:

Isab

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour

Pour une listbox?

Comme ça d'après ce que tu dis une simple feuille excel ..me semble largement pratique .. elle t'offre plus de possibilite sur le fond et sur la forme.. Et avec les filtres tu peux faire ce que tu veux en prévoyant une ou des cellules de typage avec menu déroulant "abonné" / "pas abonnée... etc...

Eventuelement un userform pour faciliter la saisie ...et surveiller la conformité des données saisies..

bonne suite
 

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonsoir,
En fait cela dépend de l'usage que tu veux en faire de tout ça...
Pour moi le plus simple et de loin c'est comme le dit Isabelle de faire une base de données dans excel, en saisissant sur une ligne 1 :
maraicher, 1 marché, abonné oui ou non
et en saisissant autant de ligne par maraicher qu'il fréquente de marchés.
Le tout est ensuite facilement exploité en 3 clics avec un tableau croisé dynamique qui te permet d'analyser tout ça en sortant les abonnés par marchés, les marchés par maraichers ... En prime tu as même les graphiques associés qui se font tout seul.
Le formulaire n'apporte pas grand chose à mon avis...
 

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

c'est effectivement une solution...

en fait je voulais passer par un formulaire qui affiche une listview et les textbox correspondantes.
Il faut savoir que pour chaque maraicher, en plus de devoir connaître les marchés auxquels ils participent, j'ai aussi toute une série d'autres infos (adresse, civilité, société, date de début d'activité, téléphone, fax, mail, n° TVA, n° identité national, produit vendus, type d'étal, s'il est saisonnier ou non, s'il paie son abonnement par trimestre, par an...)

C'est pour ça que je disais que ça aurait été bcp plus simple avec access...

si j'encode une ligne par maraicher et par marché, je dois recopier a chaque fois toutes les autres infos? Ou alors je scinde sur plusieurs feuilles?

En tout cas merci de prendre le temps de vous pencher sur mon problème! Et désolé pour le retard dans les réponses, mais je fais ça pendant le boulot, donc j'ai pas toujours le temps!

En fait, mon idée serait de faire une base de données type Access, mais avec Excel et des Userform qui remplacerait les formulaires Access...
 

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Tu peux regrouper toutes les informations concernant un maraicher dans une table de données.
Ensuite tu fais une seconde table contenant maraicher et marché et tu viens compléter cette table en récupérant par formule les infos de la table maraichers . Ca t'évite effectivement de recopier des données identiques et ça limite sacrément les risques d'erreur de saisie en prime.
Tu peux faire aussi une liste des marchés, et utiliser d'une part la liste des maraichers, d'autre part celle des marchés comme données pour des listes de validation dans les cellules de la feuille. De cette manière tu ne peux pas entrer un nom mal orthographié ou non encore répertorié.

Toujours pas besoin d'un formulaire, la saisie se fait au kilomètre. Tu peux construire un formulaire si tu y tiens vraiment bien sur.
 

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour Misange,

Merci d'accorder du temps à mon problème!

et encore désolé de ne pas répondre de façon plus régulière.

je crois que je vais essayer d'expliquer en détail l'objectif de mon travail... je me rend compte que mon "petit" problème est plus complexe qu'il n'y parait!

Situation actuelle:
- j'ai un listing qui reprend les noms et coordonnées de tous les maraichers se présentant sur nos marchés,
- j'ai un listing qui reprend les noms et coordonnées des agents qui travaillent sur les marchés,
- j'ai un classeur excel qui contient une feuille par marché (12 marchés) sur chaque feuille j'ai un tableau qui reprend les dates auxquelles ont lieu les marchés (1 x par semaine, j'ai donc par exemple lundi 1er janvier, lundi 8 janvier... jusqu'au dernier lundi de décembre) ces dates sont dans les colonnes. Dans les lignes je viens noter le nom des marchands qui participent au marché. Ces marchands sont classés dans l'ordre de placement sur le terrain. Ce tableau me permet de noter les présences / absences de chacun des marchands et d'y noter le nom de l'agent qui à travaillé sur le marché.

Aucun de ces classeur ne sont liés. Je note donc manuellement les noms dans les feuilles de présences et manuellement dans le listing maraichers... donc très grande source d'erreur.

Parallèlement à cela j'ai un autre classeur identique à celui des présence mais pour encoder le suivi des paiement des abonnés. encore une fois ce fichier est indépendant des autres... donc encore source d'erreur.

Ce que je tente de faire:

Lier tout cela!!!

en gros j'encode un nveau marchand, je précise dans quel marché il vient, s'il est abonné ou non et ... hop tous les autres fichiers (présence et abonnement se mette à jour!) facile à dire... moins à faire!

c'est pour cela que dans mon idée, je travaillais avec des formulaires, dans lequel j’introduis toutes les infos et quand je valide, les infos sont dispatchées dans les différents fichiers...

qu'en penses tu?
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

BOnjour

merci d'enlever rapidement ton classeur qui n'est pas anonymisé.
STP remplace le par un classeur EXEMPLE comportant juste quelques données, pas toutes tes données.

Comme toujours avec excel, il est BEAUCOUP plus facile de partir d'une seule base de données complète dont on extrait des sous tables (si possible par tableau croisé dynamique, sinon par filtre élaboré) plustot que de lier des tables indépendantes entre elles.
Je t'invite à lire ceci : Ce lien n'existe plus
pour comprendre pourquoi je dis cela.

Je ne dis pas que ce n'est pas possible de travailler avec l'organisation actuelle de tes données mais cela devient très compliqué comme tu le vois toi même.

Pour ma part, je n'utilise plus jamais les listview ayant eu beaucoup trop d'ennuis de portabilité avec ce contrôle et ayant eu des problème sur mon propre PC.
 

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour Misange,

désolé pour le classeur, je l'ai enlevé.

Un grand merci pour le lien que tu m'as fourni. Et un grand bravo pour le travail effectué, ce site est génial!

j'ai commencé à lire l'organisation des tableaux, les tableaux croisés dynamiques... j'avais l'impression de connaitre un peu excel, mais je me rend compte que non!

Concernant mon projet, j'ai tout repris depuis le début et j'ai donc abonné mon développement sous vba avec formulaires...!

Je t'ai joins deux fichiers, l'un qui reprend le tableau tel que j'utilise actuellement pour encoder les présences et les montant perçus sur les marchés et l'autre fichier est une ébauche basée sur les conseils donnés sur ton site.

Peux-tu me dire si je me dirige dans la bonne direction?

Encore un grand merci pour ton aide!

ps: j'ai retiré les noms et adresses et inventés d'autres pour l'exemple. (il y a bien évidemment bcp plus de marchands)
 

Pièces jointes

  • Marchés - Exemple.xls
    38.5 KB · Affichages: 43
  • Feuilles de présences Maraichers - Modele type.xls
    173.5 KB · Affichages: 34

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour

Je t'ai refait un exemple.
Il faut ajouter une table marché/marchands si les marchands peuvent être abonnés à un marché mais pas à un autre.
J'ai pas encore géré la validité de l'abonnement par rapport à la date du marché mais c'est possible (est-ce utile/pertinent ?)

Ne mets rien d'autre dans ces feuilles de données, pas de calcul, même pas besoin de faire des totaux tout se fait ensuite seulement

Le principe :
tu fais de la saisie AU KILOMETRE dans le tableau base en ne rentrant des données que dans les colonnes en rouge, le reste se remplit tout seul.

Ensuite, cette base est analysée avec un tableau croisé dynamique. Il y a de multiples façons de le faire pour sortir par exemple les données par agent, par marchand, par date, par marché, faire les comptes des montants réglés et dus... Il faudra que tu prennes le temps de voir tout ça.
Celui que j'ai mis en exemple liste les marchands ayant participé à un marché, qui est mis en filtre (cellule A1).
En faisant glisser les étiquettes du TCD tu arranges comme tu veux (reporte toi aux tutos sur les TCD j'ai essayé d'expliquer cela le plus clairement possible)

en mettant dans le champs valeurs du TCD "nombre d'ID de marchands" tu comptes les présences en fonction du jour. Tu peux aussi compter en même temps combien le marchand doit.

Le truc magique : si dans le TCD tu doubles cliques sur la cellule du grand total en bas à droite, excel te crée une nouvelle feuille avec les données correspondantes à ce TCD en l'état. Autrement dit, si tu as mis le marché en champ de page, ça te génère la page de ce marché.
Tu n'as donc pas besoin de créer ces pages spécifiques à chaque fois. Il te suffit de le faire au moment ou tu en as besoin pour les imprimer par exemple. Et je te conseille de ne pas les garder sinon vu que tu peux retrouver cette info en 2 clics et que garder ces feuilles alourdirait pour rien ton classeur.

Je te laisse t'amuser, et reviens quand tu auras des questions.
 

Pièces jointes

  • marchés.xlsx
    23.4 KB · Affichages: 52

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

bonjour Misange!

un tout grand merci pour ce fichier!

je vais le refaire sur excel 2003 car je n'arrive pas à utiliser le tableau croisé dynamique (message d'erreur qui me dit qu'il a été fait sur une version ultérieure!)

Encore une question (pour être certain que je comprends bien!)

Dans la feuille base, les colonnes en rouges doivent être remplie à chaque fois? par exemple le marché de Nimy, j'ai 60 marchands qui y participent chaque semaines, je "réencode" (pas le terme exact puisqu'il y a une liste déroulante) à chaque fois le marché, la date, l'agent... seul le marchands change à chaque ligne, c'est bien ça?

Encore merci pour cette aide précieuse!!!
 

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Oui c'est bien ça.
En fait quand tu as 60 marchands par marché, tu choisis le nom dans la colonne pour le premier et puis tu tires avec la poignée pour le recopier, c'est plus rapide
tu ne rentres surtout aucune info si un marchand n'a pas assisté à un marché (pas de "absent" donc)
Désolée j'avais zappé que tu étais avec 2003. Le principe reste vraiment le même. Tu peux utiliser les listes elles t'apportent les mêmes fonctionnalités que les tableaux dans les versions suivantes pour ce qu'on fait avec ici.
 

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour Misange!


alors, tout d'abord: MERCI!!!!!!!!


j'ai donc réadapté ton tableau sur excel 2003 et voilà maintenant quelques jours que je "bidouille" avec! c'est le bonheur!! je commence à bien comprendre le fonctionnement des tableaux croisés dynamiques (enfin je pense!) et je continue à consulter ton site excelabo!

je reviens quand même vers toi avec quelques questions!

1) est-il possible de mettre une mise en forme conditionnelle dans un tableau? (enfin une liste sous excel 2003) J'essaye de colorer les lignes paires (ou impaires, peu importe) -> j'utilise la formule =mod(ligne();2) ou =non(mod(ligne();2)) mais la mise en forme conditionnelle ne se recopie pas à l'ajout d'une ligne... et les mises en formes automatiques ne me plaisent pas vraiment... (en tout cas sous 2003)

2) question un peu plus technique:
je vais essayer d'expliquer au mieux, mais je sens que ça va pas être facile!
je vais donc décomposer:
1. j'encode les infos dans la feuille marchemarchand (elle concerne les abonnés)
2. en fonction des infos l'abonnement se calcul (trimestriel, semestriel ou annuel) avec en plus la contrainte de la période (si l'abonnement ne couvre que la période de avril à septembre, et bien je n'aurai des montants que dans le deuxième et le troisième trimestre)

ma question: l'encodage de la feuille base se faisant "à la chaîne", je pourrais encoder plusieurs années dans un fichier (ce qui me permettrais entre autre de faire des stats sur ces années) Mais par rapport aux abos, comment faire pour passer d'une année à l'autre?
1. je dois recopier chaque année l'ensemble des abonnés (+/-300) en modifiant pour chacun la date d'abonnement?
2. y a t il moyen d'automatiser en encodant par exemple l'année dans une cellule et qui modifierait automatiquement toutes les dates? (mais alors je perdrais toutes les infos des années précédentes?
3. en créant un classeur excel par année? (mais serait-il possible alors de faire des tableaux croisés dynamiques qui reprendrait les infos de plusieurs classeurs pour faire des stats sur plusieurs années?)

d'avance merci pour tes conseils et idées!
 

Misange

XLDnaute Barbatruc
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour

Question 1 je n'ai plus excel 2003 sous la main et je ne l'ai jamais vraiment utilisé en fait (je suis passée de 2002 à 2007). Mais oui on peut utiliser les mefc sur des tableaux (listes). Dans 2007 et suivantes on peut complètement modifier l'aspect des tableaux (couleurs, alternances des bandes, horizontales, verticales, les deux...). JE ne sais pas si c'est ou non possible dans 2003 mais regarde avant de te lancer dans des trucs complexes.

Question 2. Pas très facile à dire "comme ça" car ça m'a l'air compliqué vos abonnements... PAr exemple un marchand qui s'abonne pour l'hiver paye pour novembre 2013 à avril 2014 ? Ou bien vous gérez ça en + par année civile ?
Est-ce qu'un marchand peut s'abonner à 2 mois d'été seulement ou doit-il prendre toute la période d'été (ou d'hiver ?)
 

fabian123

XLDnaute Occasionnel
Re : [VBA Excel 2003] - besoin de vos avis pour la mise en forme d'un formulaire!!

Bonjour Misange!

quelle rapidité dans les réponses!

merci pour la question 1! je continue à chercher!

Pour les abonnements:
->ils se font toujours par année civile (et sont renouvelables tacitement)
Voici les cas possible pour un marchand:

1. déjà existant: son abonnement sera donc du 1er janvier au 31 décembre
2. abonnement en cours d'année: l'abonnement débute le premier jour du mois suivant jusqu'au 31 décembre.
3. abonnement arrêté en cours d'année: prend fin le dernier jour du mois en cours
4. abonnement saisonnier : ne cours que sur une période de 6 mois, toujours par trimestre (par exemple d'avril à septembre inclus, cas le plus fréquent)

les abonnements peuvent être payés par trimestre, semestre ou par année.

J'ai donc rajouté une colonne dans la feuille marchémarchand ou on encode t,s ou a par liste et en fonction de ça, ça me retourne le montant à payer, soit par trimestre, soit par semestre ou par an.

sur quoi je travaille pour le moment:

Je voudrais que dans ma feuille base, dans la colonne "abonné", il affiche par exemple "non" si nous sommes en février et que l'abonné est saisonnier et débute donc en avril...

Afin d'imprimer des listes d'abonnés par marché et par période (1er trimestre, 2ème 3ème et 4ème trimestre) pour pouvoir encoder les factures dans le logiciels comptables, sans oublier personnes, j'ai créé un tableau croisé dynamique à partir de ma feuille marchémarchand. (j'ai en effet besoin du nom, du marché, du métrage et de la somme due -> tout se trouve sur cette feuille)
En effet, le but est de sélectionner (par ex.) le 1er janvier jusqu'au 31 mars puis, le marché et là il m'affiche tous les marchands concernés avec la somme due et le métrage utilisé (c'est la dessus que je travaille, j'ai un souci avec la sélection des dates...)


Enfin, par rapport aux questions de mon post précédent, je ne sais pas ce qui est le mieux... recréer un fichier par année ou recopier les abonnés dans le fichier existant... ou autre solution!

Encore merci pour ton aide! (j'ai déjà encodé des noms dans le fichier, si tu as besoin de le récupérer, dis le moi, je ferai un nettoyage!)
 

chris

XLDnaute Barbatruc
Re : Gestion de marchés - Tableaux Croisés Dynamiques

Bonjour
Coucou Misange ;)

Pour la mise en forme auto sous 2003 il y en a une qui alterne une ligne grise et une blanche.
On peut décocher les options dont on n'a pas besoin afin de limiter la mise en forme auto juste à ce qu'on veut.
Cela ramera moins qu'une MFC par formule si ton tableau est grand.

C'est sûr que les améliorations sur les tableaux sur 2007 et surtout les suivantes simplifient cela.

Pour le reste tu es en très bonnes mains...
 

Discussions similaires

Réponses
18
Affichages
634

Statistiques des forums

Discussions
312 224
Messages
2 086 410
Membres
103 201
dernier inscrit
centrale vet