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

Macros et VBA Excel Discussion :

Créer une collection dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut Créer une collection dynamique
    Bonjour à tous,

    Je suis un peu coincé dans mon projet, je dispose d'une plage de données filtrée (tirée d'un fichier csv avec environ 2000 lignes) ayant des colonnes Date, code véhicule, volume de carburant et compteur du véhicule.
    J'aimerais extraire les données relatives à chaque véhicule par mois pour calculer le volume consommé et la consommation/100km afin d'établir un graphique chaque mois qui affiche la conso moyenne de chaque véhicule et la conso moyenne du parc.

    Comme chaque ligne représente un volume de carburant pris à la pompe j'aimerais dans un premier temps compiler les "transactions" de chaque véhicule sur le mois et les récupérer sur une feuille pour avoir une synthèse et ensuite en faire un graphique.
    Je pensais donc créer une collection Périodes qui contient les mois (et que ces derniers soient ajoutés au fur et à mesure dans cette collection) et une collection Véhicules qui contient les codes véhicules (avec la possibilité d'en rajouter) pour pouvoir boucler dessus.

    Je coince complètement sur le traitement à appliquer sur ma plage de données (manque de pratique et de connaissances) pour arriver à ce résultat, auriez vous des idées?

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,
    si à partir de ta colonne date et véhicule, tu extrait les mois et les codes en les mettant dans une nouvelle colonne, tu obtient une plage de range qui est une collection de range..

    mets en exemple la structure de tes dates et de tes véhicules, le reste relève du traitement de chaîne.

    Voir si les structures des données sont constantes dans leur colonne ?

    cordialement,

    Didier

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je crois qu'un tableau croisé dynamique est fait pour répondre à cette question.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Mercatog: un TCD pourrait être adapté mais plutôt à partir des données compilées, or je bloque avant la compilation

    Ormonth:
    Je vais tester ta piste en creusant la piste du traitement de chaîne (mes données conserve la même structures car elles sont tirées d'un .csv pondu par une autre application)

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    mais plutôt à partir des données compilées
    qu'entends-tu par là ?

    sinon, ici c'est le VBA et le TCD te demandera une feuille de données brutes bien tructurées pour être efficace, donc souvent aussi des manips préparatoires. Une fois LA feuille obtenue, suivant le contexte, c'est en effet une solution riche et puissante.

    Si tu nous fournit tes structure de chaînes, on pourra te guider, l'utilisation de filtres auto ensuite peut être une piste si tu choisi la pist e VBA qui n'est pas forcément indispensable..

    cordialement,

    Didier

  6. #6
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Mon projet est de créer un fichier de suivi des consommations de carburants par les véhicules de l'entrerprise qui puisse s'actualiser facilement et rapidement (car à part un stagiaire personne n'a le temps de s'en occuper...).

    La pompe de l'entreprise enregistre à chaque transaction le n° du véhicule, la date, le volume servi et le kilométrage. J'importe ces données par fichier csv sous excel.
    Je voudrais en tirer un historique mensuel par véhicule (volume consommé sur le mois et distance parcourue => conso/100km) et faire un graphique par mois avec les stats de chaque véhicule et la moyenne.

    Comme mon stage ne sera pas éternel je voudrais automatiser tout ça d'où VBA!!

    En tout cas merci de m'aider
    J'ai vraiment une mauvaise connexion ici donc je pourrai éventuellement joindre un fichier quand je serais chez moi (1/2 heure pour répondre)

  7. #7
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Si tu nous fournit tes structure de chaînes, on pourra te guider, l'utilisation de filtres auto ensuite peut être une piste si tu choisi la pist e VBA qui n'est pas forcément indispensable..
    Pas besoin forcément d'un fichier que peut de contributeurs ouvrent, mais simplement d'indiquer :

    les dates sont au format : 21/10/09 ou 13/janvier/2010 etc..., je veux en extraire le mis ou l'année dans une colonne ou pouvoir filtrer...

    les donéées véhicules sont ainsi "Camion a dédé ref 12n63p", je veux pouvoir en extraire etc... sachant qu'il y a toujours le m^me nombre de caractères ou qu'il n'y a que les chiffres toujours situés à la fin qui m'intéressent etcc

    cordialement,,

    Didier

  8. #8
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Alors :
    Mes dates sont au format jj/mm/aaaa hh:ss et je veux extraire mm/aaaa
    Les n° de véhicule sont au format 13##### (toujours 7 chiffres) et j'en ai besoin en intégralité
    les volume de carburant sont en litres donc ##,## et je veux les garder tels quels.
    le kilométrage est composé uniquement de chiffres

    je voudrais si possible récupérer:
    le total des volumes de carburant par véhicule par mois
    le kilométrage total par véhicule par mois

    Dans ma feuille de synthèse je voudrais reprendre ces 2 valeurs et calculer la consommation/100km pour chaque véhicule. Ensuite reprendre ces données dans un graphique qui reprend la conso/100km de tous les véhicules (en histogramme) avec une courbe de la moyenne pour voir ou chaque véhicule se situe par rapport à la moyenne.

    ++

  9. #9
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour à tous,

    une possibilité pour la compilation est d'utiliser la fonction sommeprod,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((MOIS(Feuil1!A2:A4)=2)*(Feuil1!B2:B4=A1)*(Feuil1!C2:C4))

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    un TCD est fait pour ça (avec groupement sur mois/année)

  11. #11
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    hello Sabzzz,

    Ok pour la compilation mais je ne suis pas encore arrivé là, il faudrait que j'arrive à regrouper mes données (filtrer je sais pas encore) à la fois par code véhicule et par période (mois).

    Question:
    Peut on dans une même boucle d'utiliser plusieurs filtres, récupérer les données filtrées et les traiter (pour obtenir mes fameuses données pour la feuille synthèse),les réinitialiser et en appliquer d'autres? (à la base c'est pour ça que je voulais créer des collections)

    Je pense que si j'arrive à écrire tout ça en VBA je devrais pouvoir me rapprocher de qqchose de cohérent sur ma feuille synthèse et après en tirer un graphique, un TCD

Discussions similaires

  1. [VBA/VB] créer une page dynamiquement dans un WebBrowser
    Par SilkyRoad dans le forum Contribuez
    Réponses: 3
    Dernier message: 13/03/2013, 22h24
  2. Comment créer une collection d'objet ?
    Par ced600 dans le forum VBScript
    Réponses: 3
    Dernier message: 11/09/2006, 10h48
  3. Hibernate : charger une collection dynamiquement
    Par Tail dans le forum Hibernate
    Réponses: 4
    Dernier message: 04/08/2006, 09h35
  4. Réponses: 3
    Dernier message: 01/08/2006, 08h35
  5. Réponses: 2
    Dernier message: 27/04/2006, 16h50

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