Utiliser des macros Excel depuis Access

kraenys

XLDnaute Junior
Bonjour la communauté,

J'ai créé, notamment grâce à l'aide fourni sur ce forum, divers documents excel avec des macros permettant de mettre en page, en forme, créer une feuille pour chaque nom différent d'une certaine colone de manière automatique, etc...

Problème, mon entreprise me demande maintenant d'adapter ce code sous access, il ne veulent pas que les macros soient visibles et modifiables par les autres utilisateurs mais que le fichier soit entièrement travaillé sous Access. Seul le rendu final doit être exporté sous Excel.

Mon problème est donc de pouvoir adapter le code qui fonctionne sous Excel afin de le faire tourner de la même manière sous Access. J'ai entendu parler de ADO, de OLE, mais je suis un peu perdu sur comment procéder.

Pour le moment, j'ai simplement enregistré les modules contenant les macros Excel et importés sous Access. Autre difficulté, je ne parviens pas à lancer une fonction d'un de ces modules, j'ai le message d'erreur "Une erreur est survenue lors de la compilation de cette fonction. Le module Virtual Basic contient une erreur de syntaxe. Vérifiez le code puis recompilez le."

Je met en pièce jointe les deux modules créés sous excel que j'essaye de faire tourner sous access.

Voilà, j'espère avoir été assez clair et peux essayer de préciser mon problème si des parties semblent encore trop obscures.

Merci d'avance de votre aide.

Bien à vous.

Kraenys
 

Pièces jointes

  • modules.zip
    2.5 KB · Affichages: 22

chris

XLDnaute Barbatruc
Re : Utiliser des macros Excel depuis Access

Bonjour

Tout cela est un peu ambigu. Dans Access tu as plein de possibilités en combinant requêtes et états pour présenter les données de multiples façons.

Depuis le début (posts précédents) je me suis interrogée sur tes exports massifs vers Excel.

Je peux me tromper mais cela donne l'impression qu'on a raisonné en solutions au coup par coup mais pas en besoins et cahier des charges avant de coder des solutions qui finalement ne satisfont pas tout à fait.

Si tu reprenais depuis le début pour expliquer le contexte : données disponibles, objectifs et finalités... on comprendrais mieux ton cas et pourrions te donner des solutions adaptées.
 

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

Bonjour Chris,

Je reconnais que j'ai fait en pas à pas, mais malheureusement, je n'avais pas le choix, je faisait ce qu'on m'avait demandé, je n'ai eu les cartes en main que petit à petit.
Je vais tout reprendre depuis le début avec un "schéma simple" de ce qu'on me demande, de ce que j'ai en ma possession et de ce que j'ai dejà fait. (à l'heure actuelle, croisons les doigts pour qu'on me remodifie pas tout quand ça sera traité :eek: )

Pour commencer, tout doit être automatisé pour être fait de nuit (planificateur de tâche et .bat? ^^)

Donc. Mon entreprise a une gigantesque base de données Access regroupant à peu près tout sur ses différentes usines en france.
De cette base access je dois extraire les données relatives à mon usine et les stocker dans une nouvelle table access.

Et c'est là que j'ai eu de mauvaises informations, je vais tâcher d'être clair.

Au départ, on m'a demandé d'automatiser (comme toujours), l'export de cette nouvelle table sous excel, en gardant les liens hypertext actifs, etc.. Le but de ce transfert sous Excel etait de pouvoir travailler sur ce fichier pour que chaque unité, chaque groupe de travail puisse avoir les tâches de la semaine à accomplir (il fallait créer une nouvelle feuille pour chaque "Alert_Group_Name" différent. Ce fichier Excel ainsi contenant une vingtaine de feuilles, une par groupe d'alerte, devait par la suite être remise en forme, en page (notamment par mise en gras de la première ligne, alignement centré, modifier la largeur des colones, réactivation des liens hypertext, bref.)

Sauf que... Ça aurai été trop facile. Mon responsable de stage, qui était dans le service à coté, est venu voir l'avancée du travail et a juste... Tout remit en cause.

Il veut que tout soit traité depuis Access, que seul le résultat final soit envoyé sous Excel et directement envoyé sur le serveur pour être disponible. Il vaut éviter que le fichier Excel contienne des macros qui pourraient être bidouillées par les différents services au risque de faire des fausses manips.

Je me retrouve donc avec ce qu'on m'avait demandé fonctionnel, c'est à dire récupération des données de mon usine et envoi sous une table access, puis export de cette table vers excel. Et Travail de mise en forme/page sous Excel plus tri en fonction des groupes d'alerte, et envoi de ce fichier final sur le réseau, tout celà automatisé.
Sauf qu'au final, ce n'est plus ce qu'on veut. On veut que tout soit fait par access...
Dernier détail, il ne veut pas que j'utilise de .bat pour le planificateur de tâche et m'a suggéré de passer par du vbs, je me pencherai dessus par la suite.

Voilà, j'espère avoir été assez clair et avoir permi de comprendre pourquoi ces exports massifs vers excel.

Je ne peux malheureusement pas poster de bases complètes pour deux raisons. La première, c'est que le moindre fichier fait plus de 100Mo, la seconde, c'est que chaque fichier brut contient des données non divulguables. Par contre, je peux poster les modules Excel réalisés avec les macros dedan et une table contenant un schéma de ce que peut ressembler ma table afin de donner matière à la manipulation.

Merci encore pour tout.
Bien à vous.

Kraenys
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : Utiliser des macros Excel depuis Access

Bonjour

C'est plus clair mais questions :
  • que font les Alert_Group_Name de ces éléments ? Juste une consultation ? Si oui pourquoi Excel ?
  • A quoi servent les hyperliens ?
Dans tout projet il faut se concentrer, une fois les données disponibles cernées, sur la finalité : quoi, où, pour ou par qui, comment, quand, pourquoi, pourquoi, pourquoi...

Seule un bonne analyse du besoin final clairement mis à plat par ce questionnement permet de choisir la ou les bonnes solutions...
 

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

La colone Alert_Group_Name contient différents "codes" du genre AUT_MA, MSR-MS, etc. Ces codes correspondent à des groupes d'employés définis par spécialités.

Chaque ligne est une tâche à effectuer dans notre usine. Chaque tâche est à effectuer par un groupe d'employés spécialisés (Alert_Group_Name) et chaque tâche a un lien unique vers notre serveur internet pour accéder à la description détaillée de la tâche, que ce soit un remplacement de pièce, un manufacture quelconque, etc.

Chaque groupe d'employés a un responsable, Cette personne répartis les différentes tâches à ses collègues. Le but est donc de permettre à chacun de ces responsables de pouvoir voir facilement quelles sont les tâches à effectuer afin de répartir au mieux le travail, d'où le tri par groupe d'alerte, une feuille par groupe d'alerte identique.
Ceci doit être fait de manière automatique, tout les dimanches dans la nuit (date actuellement prévue.)
Jusque là, le service dans lequel je travaille faisait ces manipulations à la main tout les lundi matin/dimanche soir. Mon but est de permettre un traitement automatique de ces données pour éviter cette tâche répétitive.

Je pense effectivement qu'il est temps de réfléchir à la finalité au lieu d'essayer de faire du pas à pas, merci de m'aider à le faire.

Bien à vous.
Kraenys.
 
Dernière édition:

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

Re

Les fichiers Excel générés seront libres d'accès, car ils ne contiendront plus de macros, celles-ci devant être effectuées sur la base acces directement.

Concernant la question sous-jacente, le pdf avec hyperliens devrait largement suffire à mon goût, mais j'ai parmis les contraintes de réalisation un document Excel en document terminé.

BàV.

Kraenys
 

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

Bonjour chris, bonjour le forum.

Il me semble, je vous le confirme d'ici peu, qu'il faut que le résultat final sous excel soit en un seul et même fichier.
Je suppose que si plusieurs documents sont ouverts en même temps et qu'une des personnes qui l'a ouvert le modifie et l'enregistre, les autres lors de l'enregistrement auront des problème de fichier corrompu ou une chose du genre, c'est ce que vous entendez par "peut poser des soucis..."?
Dans ce cas peut-être faudra-t-il le protéger en écriture..

Bien à vous.

Kraenys
 

chris

XLDnaute Barbatruc
Re : Utiliser des macros Excel depuis Access

Bonjour

Effectivement l'accès en lecture/écriture à un même classeur pose problème sauf à le prévoir en partage ce qui entraîne aussi des limitations parfois gênantes.

Le questionnement auquel je faisais allusion dans mon précédent post comporte normalement 7 POURQUOI : quand le demandeur a de bons arguments sur ce qu'il demande il peut en trouver 7. Mais par expérience, si ce n'est pas le cas on peut lui proposer une solution qui satisfait parfaitement le besoin réel, l'objectif et qui n'est pas celle qu'il imaginait, lui.
Les demandes sont toujours faites en fonction de ce que le demandeur (maître d'ouvrage) connait lui et donc imagine. C'est à celui qui joue le rôle d'assistance à la maîtrise d'ouvrage ou, à défaut, celui de maître d’œuvre, d'être force de proposition et d'élargir les possibilités en se focalisant sur le besoin opérationnel.

Access permet énormément de choses sans programmation (ou peu) et, sachant que tout développement devra être maintenu, ne serait qu'en cas d'évolution de version, autant éviter l'usine à gaz...

Les 2 points primordiaux ici sont donc :
  • si les fichiers ne sont pas supposés être modifiés, pourquoi Excel ?
  • pourquoi chaque groupe doit-il voir les données des autres groupes ?
 

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

Re

Alors, je suis tout à fait d'accord que seul le bon fonctionnement et surtout la réutilisation des modules pour d'autres situations ou simplement tout les dimanche soir sont attendu dans mon cas, et que si on peut éviter l'usine à gaz, ça serai parfait.

J'ai réfléchi à la solution d'un fichier par groupe de travail, celà pose un problème majeur.
Dans le cas que j'ai traité pour l'instant, je n'ai qu'une quinzaine de groupes différents, ce qui créérai une quinzaine de fichier, ça semble raisonnable.
Problème. dans d'autres cas, qui devront être traités de la même manière, on sera beaucoup plus proche de la cinquantaine de groupes de travail différents ce qui génèrerai une cinquantaine de fichiers, ou alors on devra trier avec autre chose que des groupes d'alerte, comme par type de matériaux par exemple, et on se rapprochera plus de la centaine, trop d'après eux.
Lors du traitement de ces cas un peu particulier, ils m'ont expliqué qu'ils utiliseront Notes pour transmettre le fichier final, à voir si une solution plus efficace ne peut pas être mise en place?

Par contre, je n'arrive pas bien à comprendre pourquoi ils s'acharnent à garder les droits d'écriture, je pense qu'approfondir ce problème avec eux peut être bénéfique, surtout si au final on garde l'option d'un seul fichier avec plusieurs feuilles.

Autre point, concernant le format de sortie. Tout les membres de mon usine sont des habitués d'Excel, le traitement des tâches a été toujours sorti dans ce format (presque depuis qu'Excel existe..) et je pense qu'il sagit surtout d'un problème "d'habitudes" qui se pose ici....

Dernier point actuellement, les autres groupes n'ont aucune nécessité de voir les données des autres groupes, ou alors dans des cas très particuliers que l'on traitera au cas par cas.

Je suis tout à fait ouvert au développement d'autres solutions, surtout si elles permettent d'éviter l'usine à gaz et qu'ells soient capables de continuer le projet une fois que je serai parti. Pensez-vous vraiment que les différentes manipulations que je dois réaliser d'une manière générale sont possibles directement depuis access sous forme de macros ou de quelques modules? Encore merci de l'aide organisationnelle que vous m'apportez, elle m'est vraiment précieuse.

Bien à vous.

Kraenys
 

chris

XLDnaute Barbatruc
Re : Utiliser des macros Excel depuis Access

RE

Le nombre de tâches par groupe/semaine est-il supérieur à la fameuse limite du nombre d'hyperliens ?

Est-il envisageable que les responsable de groupe aient un accès à ces données dans une base Access directement sur serveur (sans aucun moyen bien sûr d’accéder à la base source et donc d'y toucher ?)
 

kraenys

XLDnaute Junior
Re : Utiliser des macros Excel depuis Access

Re

Elle ne le sera pas obligatoirement, mais peut largement dépasser les 65535, effectivement. Dans le cas que j'ai traité la semaine dernière, nous étions à précisément 126230 tâches.


Les données brutes de toutes les usines sont initialement sous access, il sagit d'un très gros DUMP. C'est de ce point de départ que j'effectue la première macro qui trie uniquement les tâches de mon usine, pour par la suite les trier en fonction des groupes d'alertes (la majorité du temps), etc....

Par contre, j'avais remarqué que la limite des 65535 liens hypertext n'existaient pas sous Access.
Un dernier problème qui n'est pas des moindres dans le fait de tout faire même l'export sous access (donc de ne pas faire d'export du tout en fin de compte), c'est que tout les postes n'ont pas Access, seul la section IT a Access. Tous ne pourront donc pas ouvrir un document Access standard.

Bien à vous.

Kraenys
 

Discussions similaires

Statistiques des forums

Discussions
312 320
Messages
2 087 220
Membres
103 497
dernier inscrit
JP9231