Bonjour à tous,
Environnement win 7 32 pro (en prévision 64) office 2010 pro VBA 7.0
desole d'etre si long dans mon message, les autre seront plus court
Il y a sans doute pas mal de réponse a l’intérieur du forum mais je dois avouez que aucune ne répond complètement à mon/mes besoins et fouiller partout dans plus de 16,000 post est un travail de fourmi que je ne peux pas me permettre pour le moment, donc si vous pouvez me répondre ne serait-ce que en me donnant l’url de la discussion traitant un cas particulier, ce sera grandement apprécies.
Si l’on doit découper cette demande en plusieurs modules, guider moi et je découperai dans les bons endroits (je suis nouveau mon premier post) en gardant une liaison avec la demande initiale, qui sait cela pourra peut-être servir à quelqu’un…
A lire plusieurs des post du forum, j’en suis arrivé a la conclusion que les infos de base sur la problématique n’étaient pas souvent claires et il y avait plusieurs aller-retour avant de pouvoir donner un conseil (ou plusieurs au demandeur) . Alors voici une explication assez complète et complexe de ma problématique, et de mon projet tout en conservant une certaine discrétion. (business oblige )
1- mise en contexte et ma presentation
a. je suis un dinosaure de la programmation…. Ex-programmeur IBM assembly 370, cobol, cics, ims DB/DC, JCL,….. bref toute la panoplie des mainframes vos ancêtres, et au niveau PC …. MS/DOS 6.0. Même si je suis un utilisateur win 7 32 et 64 je dis bien UTILISATEUR et de base.
b. j’ai abandonné la programmation pour me concentrer sur l’analyse, la modélisation des données et architecture, puis gestion de projet et enfin direction de programme, BPM, PMO etc… mais je suis toujours resté en TI ou très proche.
c. Conclusion :
plus une ligne de code depuis pfeuuuuu des lustres, exception faite de quelques formules un peu compliquées parfois dans mes tableurs Excel d’analyse de performance, pour le reste je donnais mon analyse de besoins a une des équipes et j’avais le résultat.
2- Seulement voilà…..
a. Maintenant, je suis directeur général d’un backoffice internet startup (je serais discret sur le nom et le métier – disons du B2B), l’équipe de développement est réduite, se situe sur un autre fuseau horaire que le mien, est sur « booker » un peu à cause de mes besoins en amélioration des processus et toutes celles que le MKG peut développer
b. J’ai besoin d’analyses, de rapport,…. D’un CUBE de données que je puisse manipuler à ma convenance pour piloter ma production (développement des partenariats, facturation/encaissement, qualification des demande, dispatcher, surveillance de la qualité…) et pour le moment pas question de créer un « entrepôt » les besoins sont trop variables et évolutifs (startup oblige )
c. Comme je dispose assez facilement d’export en .xls je me suis donc oriente vers EXCEL que je connais correctement (VBA en apprentissage) pour construire mon CUBE avec plusieurs faces la liaison entre les faces se faisant par identifiant donc une pseudo base plus hiérarchique que relationnelle
i. Une face marche (pays-volume estime-importance, etc)
ii. Une face partenaire (profil capacitaire, pays, etc)
iii. Une face client
iv. Une face vente
v. Etc.
les croisements selectifs de 1, 2, 3 voir 4 faces avec analyses statistiques me donnant une vision de la tendance et de notre direction…. Et donc de pouvoir corriger la direction pour s’aligner sur la tendance.
d. Vivant dans une ile paradisiaque sous les tropiques (ne soyez pas jaloux si j’habite a 20m de la mer sous les cocotiers il y a aussi un prix à payer comme les typhons et les tremblements de terre), même avec une université américaine sur place, après quelques « tests » de développeurs stagiaires locaux en fin de cursus de formation, j’ai dû me rendre à l’évidence je ne dispose pas de ressources locales compétentes pour programmer, même en cherchant des seniors locaux
i. Excel inconnu ou même pas au niveau d’une secrétaire
ii. Aucune curiosité pour apprendre…..
au résultat j’ai mis au panier tout ce qu’ils ont pu faire, à peine capable de d’utiliser l’instruction DIR dans une boucle pour lire les noms des fichiers…
e. les developpeurs senior que vous etes etant pour le moment trop eleve pour mon budget d'operation .
Je me suis donc résous à retourner en programmation............... VBA dans mes heures supplémentaires et je redécouvre un univers qui en 20 ans a évoluer et JE TIRE MON CHAPEAU a tout ceux qui sont capables de savoir qu’elle méthode, fonction, procedure à utiliser et comment la coder (avec la « bien vaillante » discrétion Microsoft sur le contenu des API, dll etc…bande d’enffoire !!!)
3- Maintenant, j’aurais besoin de vos conseils car même si j’ai déjà réalisé quelques macro lisant plusieurs fichiers, faisant la mise en forme paginée de rapports statistiques, j’avoue que je pédale fort (même si je prends mon pieds a le faire ).
mon objectif (pour le moment) a partir de 7 exports Excel serait de construire un fichier EXCEL MAITRE, qui comprend les paramètres de travail et de rapport (journalier, semaine, mensuel) pour différentes analyses, que je peux lancer en automatique (exemple 0h15) ou à la demande. Avec envoi automatique par Outlook (ca je sais faire, au bon destinataire me reste a apprendre)
J’envisage ce MAITRE en modulaire utilisant
a. Plusieurs feuilles paramètres (techniques et de configuration a la demande)
b. des sub function private
c. des modules externes regroupant des fonctions particulières
d. Des fonctions spécifiques de contrôle de gestion des fichiers .xls en entrée et sortie et cohérence des données Exemple : mes exports sont systématiquement constitues d’une première ligne avec les noms des champs dans la base et de la ligne 2 a n des données. Mais je ne suis pas le seul à vouloir ces exports et bien sur même si les noms de champs restent les mêmes (on va changer tous les programmes du système pour vouloir changer un nom de données) ils sont susceptibles de changer de place dans l’export.
J’ai donc conçu une fonction d’analyse de la position des champs (position colonne) et qui récupère la valeur de la dite colonne pour pouvoir la donner en paramètres de façon à ne jamais (ou presque) me retrouver avec un champs invalide et ma function traite le cas anormal et m’envoie un e-mail d’alerte, avec alerte a l’écran.
e. Le maitre contiendra et fera :
i. la liste de toutes les données en PUBLIC
ii. la liste des noms officiels de données dans une feuille excel
iii. le traitement de la « date de traitement » de la durée et du rapport d’exécution
iv. Call - Mise à jour de profil marche, partenaire, client, vente… si un fichier a été déposé dans les répertoires predefinis, avec bien sur nettoyage et archivage du dis fichier
v. l’orientation des traitements
1. call ouverture-cohérence
3. CALL aux fonctions demandées par l’utilisateur et bien sur interaction avec l’utilisateur si besoin est
4. Génération de rapport
5. Call fermeture
6. Rapport d’exécution
f. Je voudrais également pouvoir installer le module maitre sur les postes de mon équipe, mais que les exports datas soient sur un serveur fichier qui lui est….. LINUX
Maintenant que vous avez une idée « globale » de la « patente a gogosse » que pourriez-vous me conseiller:
1- Pseudo découpage fonctionnel et comme méthode VBA à utiliser avec toujours en vue le besoin de performance, travailler en fichier ferme ADODB ?
2- est-il possible en VBA, lorsqu’un module est stabilise de le compiler en exécutable du type dll
3- existe-t-il une liste des dll dans l’API ? et surtout comment les utiliser ? ou pouvez-vous me recommander un certain nombre control VBA intéressant ? gestion de date, comparaison de date, gestion de fichier.... ou puis-je trouver (en francais cela me fera du bien de lire ma langue natale) une liste exhaustive du contenu VBA
4- Je me suis heurte plusieurs fois a des difficultés d’appel de module, si je code une fonction a l’intérieur du même module aucun problème, mais si je veux regrouper mes différentes fonctions de même type dans des modules spécialisés et appeler une fonction particuliere…. VBA est incapable de résoudre et il ne trouve ni le module ni la fonction exemple
a. Module gestion fichier
i. Fonction vérification cohérence fichier - j’ai bien tous mes champs et je veux récupérer leur position pour l’utiliser dans différentes fonctions indépendamment de l’évolution du fichier export. A partir du MAITRE faire un appel à la fonction
-----------MAITRE
----------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Call Fichier_coherence_verif ( nom_fichier, _ feuille_parrametre, _ DATA_1, DATA_2, .etc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SUB gestion_fichier () End sub Private Function Fichier_coherence_verif ( nom_fichier, _ feuille_parrametre, _ DATA_1, DATA_2, .etc end Function
Partager