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 :

Programme de traitement de fichier en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut Programme de traitement de fichier en VBA
    Bonjour à tous,

    Je sollicite votre aide, car cela fait plusieurs semaines que je bloque sur un problème et j'aimerai avoir un coup de main de personne ayant une expérience solide en VBA.

    Mon programme fait les choses suivantes :

    - Je dois renseigner une période et cela calcul automatiquement les dates de début et de fin (pour filtrer les valeurs).
    - Je choisi un fichier excel dans lequel je vais renseigner mes calculs
    - je choisi les fichiers .txt à ouvrir
    - ensuite le programme doit mettre en forme le fichier en enlevant des caractères.
    - il doit reconnaître la machine sélectionnée en fonction d'un numéro présent dans le nom du fichier et cela doit récupérer une valeur de puissance max dans un tableau excel
    - ensuite je dois lire le fichier ligne par ligne en contrôlant la date et l'heure et vérifier si c'est bien compris dans ma période choisi. Si ça ne l'est pas je récupère rien.
    - Je fais un test sur la valeur de production récupérée et si elle dépasse la valeur max, je dois lui affecter une valeur fixe (valeur max de la machine).
    - Je stocke la valeur totale dans une variable A et je stocke la valeur modifié dans un autre variable B
    - Une fois le fichier passé, je dois ouvrir un fichier excel, stocker la valeur A dans une colonne et la valeur B dans une autre colonne.
    - Je dois ensuite enregistrer le fichier excel et le fermer.
    - je dois afficher l'état d'avancement.

    En tout j'ai une cinquantaine de fichier a passer..

    Mon problème est que ma macro fonctionne bien, mais elle est vraiment dégeu (ayant appris VBA il y a mois de 6 mois en auto-didact).

    J'essai de mettre à jour mon code vers une programmation Objet sachant que je vais devoir rajouter des machines et aussi créer de nouvelles macros pour des nouveaux types de machine.
    Le tout devra être utilisable dans une appli Excel avec des menus, sous-menus...

    Le projet est tellement complexe et c'est mon premier gros projet que je ne sais pas par où commencer.

    Par exemple, dois-je dans un premier temps faire une boucle qui remet en forme chaque fichier avant de lancer le traitement ou dois je faire la remise en forme sur chaque ligne lorsque je vais lire le fichier ?
    Idem, si je créer une classe fichier avec une méthode traitement(), dois-je créer une boucle sur les fichiers dans mon main et appeler la méthode traitement() ou faire une méthode traitement() qui boucle sur tous les fichiers... ?

    Pour le moment j'ai :

    Un module TestClassFichier contenant :
    - L'instanciation de ma classe Fichier avec dans le constructeur une date de début et une date de fin
    - Un appel vers la méthode ouvrir de ma classe Fichier

    Un module de classe avec :

    - Sub Ouvrirfichier() qui boucle sur les fichiers et qui appel une sub Traiter()
    - Sub Traiter() qui récupère le nom du fichier, qui appelle une fonction pour récupérer le nom de la machine, puis qui appelle une autre fonction avec le nom de la machine pour récupérer la valeur max de la machine (des switch case renseignés, environ 50 tests...). Ensuite elle lit le fichier ligne par ligne et appelle une fonction de remise en forme de la ligne en supprimant des caractères. Ensuite elle split la ligne en deux parties et fait un test sur les deux parties. Si la date n'est pas compris dans l'intervalle, elle ne fait rien. Sinon elle récupère la valeur de production et la test en fonction de la valeur max puis stocke la valeur dans deux variables :
    Variable 1 Valeur = valeur + valeur (on somme toutes les valeurs et on les sommes)
    Variable 2 Valeur 2 = Valeur2 + Valeur2 si valeur2 <ValeurMaxMachine sinon Valeur2 = Valeur 2 + ValeurMaxMachine.

    A la fin du fichier, elle appelle une Sub EnregistrerExcel() qui ouvre le fichier Excel, y stocke la Valeur1 dans la colonne A puis la Valeur2 dans la colonneB puis l'enregistre et le ferme.

    Vous comprenez à présent pourquoi je suis complètement perdu...

    je suis conscient que cela est complexe et que cela vous fera pas mal de lecture, donc je remercie d'avance ceux qui vont prendre le temps de m'aider.

    Amicalement.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour un projet important, je pense que la première étape est la rédaction d'un cahier des charges :
    https://www.google.fr/search?ei=VuZ-....0.iYy48XZqY9g

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, mais surtout lire ceci

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 6
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Bonjour,

    Pour un projet important, je pense que la première étape est la rédaction d'un cahier des charges :
    https://www.google.fr/search?ei=VuZ-....0.iYy48XZqY9g
    Bonjour Patrice,

    Oui je sais que c'est ce qu'il faut faire et j'ai établie un cahier des charges. Ce que je n'arrive pas c'est raisonner avec "l'aspect VBA", car je ne connais pas encore les limites du VBA et la meilleure façon de coder et d'optimiser mon code, d'où ma question sur les boucles avec les fichiers...

    Mais merci grandement de votre réponse constructive.

    Citation Envoyé par kiki29 Voir le message
    Salut, mais surtout lire ceci
    Bonjour Kiki et merci aussi de ta contribution.

    Pour être franc je ne vois pas vraiment où j'ai enfreins le règlement. Je souhaite vous dire que j'ai déjà pris connaissance du règlement et que j'essai de le respecter au maximum. Si j'ai pu vous contrarier ou enfreindre un règle, j'en suis désolé.

    Merci tout de même de votre réponse.

Discussions similaires

  1. traitement de fichier XLS/ macro vba
    Par yodsilva dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 31/07/2012, 11h23
  2. Traitement des gros fichiers avec VBA sous MsACCESS
    Par GBAGO dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2008, 10h48
  3. probleme pour traitement de fichier xml en vba, lenteurs
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 11/09/2008, 15h57
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  5. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27

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