IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Réaliser une analyse de groupe. - evolution code VBA [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut Réaliser une analyse de groupe. - evolution code VBA
    Bonjour à tous

    Je fais appel à votre aide car je suis dans une impasse totale. Après des heures de galère je n'ai pas avancé d'un iota...

    je dois faire evoluer un code VBA assez complexe (en tous les cas pour moi !) que Claude LELOUP, membre actif de ce forum m'a créé (je le remercie très vivement au passage pour la patience et le temps passé). Ce besoin d'evolution fait suite à une modification de paramètre dans mon analyse de groupe.

    Malheureusement pour moi Claude manque de disponibilité pour m'aider à transformer le code et mon niveau actuel est bien insuffisant pour arriver au résultat attendu, c'est pourquoi je tente ma chance en ouvrant une nouvelle discussion sur ses conseils.

    Etat des lieux :
    je dispose d'une table avec des données financières issues de bilans comptables ("TOUS RATIOS EN K€").
    Dans cette table on va retrouver le ou les bilans de plusieurs individus (un même individu peut apparaitre plusieurs fois si plusieurs bilans).
    Ex Individu 1 avec bilan 2014 / bilan 2013
    Ex Individu 2 avec bilan 2012
    ...
    Chaque individu est rattaché à 3 classes de regroupement :
    1 classe Typologie
    1 classe Groupe régional
    1 classe Tranche d'effectif

    et doit etre comparé, sur 4 niveaux :
    - National (tous les individus quelque soit leur classe mais on ne tien compte que d'un seul bilan : le dernier)
    - individus de même Typologie
    - individus de meme groupe regional
    - individus de même tranche d'effectif

    Pour chaque regroupement (NATIONAL/TYPOLOGIE/GROUPE REGIONAL/EFFECTIF), 3 calculs :
    - la moyenne du premier quartile
    - la moyenne du groupe complet
    - la moyenne du dernier quartile


    L'idée est de "benchmarker" un individu sélectionné au travers d'un formulaire de sélection fSelection.
    J'étais au départ parti d'abord sur une selection d'année , puis d'un individu. Or la sélection de l'année n'a plus lieu d'être :

    - Je selectionne mon individu dans ma liste déroulante. Le systeme doit comparer les dernières données de cet individu (celles du bilan le plus récent) avec celles des bilans les plus récents des autres individus du même groupe. Ce qui veut dire que je pourrais etre amené à comparer des données 2014 de l'individu 1 à des données 2012 ou 2011 d'autres individus du même groupe, tant que je pointe bien vers les données les plus récentes en base.

    Mon pb est que je n'arrive pas à faire évoluer le code pour tenir compte de ce nouveau paramètre.


    Voici un recap de ce qui change par rapport à la base ci jointe :

    1) Sélection :
    On ne sélectionne plus une année mais uniquement un individu et l’état est basé sur le bilan le plus récent de cet individu
    Et on ne tient compte que d’un seul bilan par individu (le bilan le plus récent de chaque individu).

    Ex :
    en sélectionnant l’individu A dont le dernier bilan reçu est de 2014 , je pourrais etre amené à comparer ce bilan à d’autres bilans de la même typologie ou du meme groupe régional ou de la même tranche d’effectif
    mais il se peut que ces bilans soient de 2013 , 2012 voire avant.



    2) Etat :

    - Le tableau comporte pas mal de N/A car je ne peux calculer des moyennes avec des % !! Il me faut donc refaire les calculs avec les données source :

    - Au niveau des %, de manière à pouvoir calculer le % de la moyenne MOY , de MQ1 et de MQ4, pour chacun des regroupements (NATIONAL/TYPOLOGIE/GROUPE REGIONAL/TRANCHE D’ EFFECTIF) , j’ai ajouté à la table TOUS RATIOS EN K€ les données détail manquantes pour calculer ces % .

    Ces champs de % sont au nombre de 8 – positions 11 à 15 , positions 20, 27 et 28 de la table tCanevas.

    Détail des calculs (champs de la table TOUS RATIOS EN K€) :
    Position 11 : Taux de marge brute : R02_MB GLOBALE / R01_CHIFFRE D'AFFAIRES HT
    Position 12 : Excédent brut d’exploitation : R05_EBE / R01_CHIFFRE D'AFFAIRES HT
    Position 13 : Résultat d’exploitation : R06_RES EXPL / R01_CHIFFRE D'AFFAIRES HT
    Position 14 : Résultat net : Resultat Net / R01_CHIFFRE D'AFFAIRES HT
    Position 15 : Charges de personnel : CHRG_PERSONNEL / R04_VA
    Position 20 : Capitaux propres avec c.c % C.A. : CAP PROPRES AVEC CC / R01_CHIFFRE D'AFFAIRES HT
    Position 27 : Taux d’absorption : FactAtel+MBPR / FW+FX+FY+FZ
    Position 28 : Rentab cap permanents : CAP_PERM_VAL / RCAI_VAL


    Voilà l'etat des lieux et la situation à date.

    Je dois finaliser ce projet pour mi mai et le temps m'est compté. J'aurais evidemment préfére m'en sortir seul mais là je suis au bord de la crise de nerfs..

    Je suis clairement bloqué et je pensais même à réécrire le tout sous forme de requetes séparées mais j'ai peur d'etre limité en capacité et de batir une vraie usine à gaz.

    D'avance merci à vous pour votre aide précieuse

    Slts
    Arnaud
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut
    Bonjour à tous

    personne pour me donner un coup de main ??

    merci d'avance

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    Il y a un truc que je pige pas dans le code de l'état, c'est cet enchainement de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "SELECT [...."
    C'est sensé faire quoi ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    ces SELECT servent à faire les regroupements de valeur dans ma Table TOUS RATIOS EN K€ en fonction de l'individu selectionné dans le formulaire fSelection
    1 regroupement NATIONAL : tous les individus de la table TOUS RATIOS en K€ (uniquement dernier bilan)
    1 regroupement TYPOLOGIE : tous les individus du meme groupe TYPOLOGIE que l'individu selectionné en fSelection
    1 regroupement GROUPE REGIONAL :tous les individus du meme GROUPE REGIONAL que l'individu selectionné en fSelection
    1 regroupement EFFECTIF : tous les individus du meme groupe EFFECTIF que l'individu selectionné en fSelection

    L'année n'est plus un critere de selection , il faut donc modifier ces SELECT pour qu'a chaque fois , seul le dernier bilan des individus concernés soit pris en compte

    merci

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Et faire un RunSql avec un Select tu as testé ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut
    Non pourquoi ?
    a vrai dire je debute et j'ai été pas mal aidé pour batir jusque là...

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Runsql c'est pour les requêtes Actions. Quand j'utilise un truc pour la première fois ou pas souvent j'aime bien faire un petit coup de F1 avant.

    Dans tous les cas taper autant de code sans l'avoir jamais exécuté c'est original comme méthodologie de développement.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut
    J'ai toujours construit mes bases en passant par les requetes etats et formulaires sans avoir connaissance de la traduction en VBA. Je suis conscient de parfois batir des usines à gaz mais
    cela fonctionne. Sauf que pour cet état, j'avais besoin de calculer des médianes , ce qui est impossible sans passer par VBA.

    J'ai donc demandé -et reçu - de l'aide précieuse d'un forumer qui m'a aidé jusque là et qui, clairement, m'a fourni les lignes de code toutes cuites.

    J'ai compris la logique mais suis incapable de modifier à l'heure actuelle pour obtenir ce que je souhaite car je ne maitrise pas du tout la syntaxe et la structure VBA ; et lui n'a plus le temps de m'aider, d'ou l'ouverture de cette nouvelle discussion.

    En ce moment même je suis en train d'essayer de retranscrire sous forme de requetes un état complet qui puisse me donner le même resultat car je n'ai pas d'autre solution.
    Je dois bien pouvoir appeler le resultat d'une procedure VBA via une requete (module ? )

    Moi aussi j'aime bien comprendre comment ca marche (je compte bien aller en formation VBA pour ça) mais là je suis dans l'urgence

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Tant que c'est à but didactique, produire des UAG n'est pas gênant, ça permet de familiariser avec ACCESS. Par contre en exploitation ce n'est pas conseillé.

    Pour l'instant ta priorité est de réaliser la requête contenant les données souhaitées et d'y placer un filtre pour isoler le ou les tuples voulus. Une fois cette étape atteinte il sera temps d'adapter dans une IHM.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2014
    Messages : 41
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    je n'ai pas tout compris au message précédent; toujours est-il que j'ai atteint mon objectif en decomposant mon code et en recreant des tables distinctes par classe de regroupement par un mix de code et de requetes.

    Cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Formater une cellule Excel dans un code VBA
    Par demcoul dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/09/2009, 14h08
  2. comment réaliser une Analyse de code java
    Par PHPkoala dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 11/02/2009, 09h58
  3. Bug Excel lors d'une tentative de modif de code VBA
    Par aerodynamique dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/11/2007, 11h28
  4. réaliser une analyse factorielle
    Par CHAREN dans le forum Excel
    Réponses: 3
    Dernier message: 05/07/2007, 17h20
  5. Appeler une macro a travers un code VBA
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/06/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo