Microsoft 365 Rendre une application Excel plus fiable - Migration vers .Net ?

winzek

XLDnaute Nouveau
bonjour,

Nous travaillons avec une application permettant de calculer la situation financière de chaque client (comptes bancaires, immeubles, assurances, impôts, etc.). On créée un classeur Excel par client. Chaque classeur contient environ 120 feuilles (entre les feuilles de saisie et les tableaux générés). La taille se situe à environ 10 Mo par classeur. Le code VBA est conséquent (plus d'une vingtaine de de modules).

Cette application contient de nombreuses feuilles de saisies. Les données à saisir se font en colonne : colonne A=libellé et les colonnes suivantes contiennent les données entrées par l'utilisateur. Par exemple, la feuille immobilier contiendra une colonne par immeuble (avec une colonne vide entre chaque immeuble pour faciliter la lecture). Une fois les données entrées, l'utilisateur peut générer des tableaux permettant de calculer sa situation financière actuelle et une projection sur plusieurs années; il y a donc de nombreux calculs (donc une quantité importante via VBA).

On souhaiterait garder Excel pour sa rapidité de développement et ses possibilités de calculs, mais en sauvant les données entrées par l'utilisateur dans une base de données pour rendre l'application plus sécurisée. Est-ce qu'une telle solution existe ? Existe-t-il des outils de migrations d'Excel (avec VBA) vers ces solutions ?

On m'a parlé d'une migration vers .Net, quand pensez-vous ?

J'espère ne pas être trop brouillon dans mes questions et vous remercie d'avance pour vos pistes ou votre aide.

Toute bonne journée

Fabrice
 

winzek

XLDnaute Nouveau
Bonjour Goupe,
Je vous remercie de votre message. Effectivement, après avoir effectué des recherches, je me rends compte qu'une migration sur .net nécessiterait une réécriture complète, ce qui serait un travail trop conséquent.

L'idée de sauvegarder ou restaurer les données depuis une bd Access me semble une bonne alternative.

Si vous avez des conseils, je suis preneur :).

Cordialement
Fabrice
 

chris

XLDnaute Barbatruc
Bonjour

Il s'agit d'un multipost auquel j'ai déjà répondu ceci

Pour migrer cela vers une base, Access ou autre, il faut passer par une mise à plat : structure de la BD qui doit respecter les règles des SGBDR et plan d'alimentation
PowerQuery peut éventuellement aider à restructurer pour faciliter le passage, ta description indiquant des données non normalisées...
Monter une pseudo BD excellienne n'apporterait pas grand chose...

La description montre que les tableaux Excel ne sont pas normalisés et donc que ce travail préalable est indispensable...
 

winzek

XLDnaute Nouveau
Bonjour,
Un exemple de ce que tu utilises à ce jour serait bien utile pour t'apporter un début de réponse.
Cordialement.
Merci de votre réponse.

Vous trouverez ci-joint une petite partie de l'application Excel, afin de faciliter l'explication. La majorité des données sont entrées en colonne, selon la feuille 5. Il y a environ 40 feuilles de saisie qui correspond à ce format de saisie.

Il existe 2 feuilles dont la saisie diffère. Vous trouverez un exemple dans la feuille 1.

Comme indiqué dans mon précédent message, je m'oriente vers une sauvegarde et restauration des données via une base Access. Ainsi, une base de données contiendra l'ensemble des données des clients et permettra de faire des analyse ou d'avoir une vue d'ensemble (ce qui n'est pas le cas actuellement, vu qu'il y a un classeur Excel par client).

J'espère que ces informations vous seront utiles et volontiers si vous avez des pistes de réflexion ou des conseils.

Cordialement
Fabrice
 

Pièces jointes

  • Forum - Fichier test.xlsm
    83.8 KB · Affichages: 10

goube

XLDnaute Accro
Re,
A la vue de ton classeur, je rejoins la logique de chris, que je salue au passage, Il te faut mettre en place un ou des formulaires afin d'alimenter une base de données sur laquelle tu t'appuieras pour présenter ton tableau de bord à l'aide de TCD ou Power Query.
Saisir les données en colonne pour chaque client n'est pas la bonne méthode, la preuve.
Réfléchis à la mise en forme d'un formulaire permettant de collecter les données nécessaires qui une fois stockées dans une BDD permettrons de construire tes tableaux.
Pour ce qui est des données déjà saisies, comment se présentent elles ?
Cordialement.
 

winzek

XLDnaute Nouveau
Je remercie Goube et Chris pour votre aide,

J'ai déjà trouvé une solution pour disposer les données en tableau depuis les données saisies en colonne. En ajoutant une colonne masquée avec un nom de champ (voir colonne B de la feuille 6. source), je peux ensuite générer via VBA un nouveau classeur Excel avec les données disposées en tableau (voir feuille "Résultat dans un nouveau classeur"). Je pourrai donc récupérer les données des classeurs déjà saisis (dont les données se présentent majoritairement en colonnes).

A la place de générer un fichier Excel, je vais étudier la possibilité d'écrire directement dans une BD access (par exemple, à la fermeture du classeur Excel). A voir le temps que ça prend étant donné qu'il y a environ 40 feuilles de saisies.

Il me reste à trouver une solution pour générer un code client unique par client (clé primaire). Je me pose également la question, s'il est préférable de remplacer les données du client dans Access ou alors d'enregistrer les différentes versions de saisies (un utilisateur pourrait ainsi revenir à une situation de l'année passée et avoir un historique).

En revanche, j'abandonne l'idée de migrer l'application Excel dans .Net, car, comme déjà mentionné, le travail me semble trop conséquent.

Est-ce que vous pensez que je suis en train de monter une usine à gaz ou est-ce que ça vous semble jouable ?

Merci encore pour vos conseils qui me font avancer.

Cordialement
Fabrice
 

Pièces jointes

  • Sauvegarde des données.xlsx
    22.4 KB · Affichages: 6

goube

XLDnaute Accro
Re,

Tu ne prends pas le problème comme il le faut, à mon sens.

Je pense qu'il te faut poser sur une feuille, les différentes tables qui te seront nécessaires pour bâtir ton ou tes tableaux.
Compte bancaire, individu(s) (primaire et rattachés), biens et sans doute d'autres choses que je ne maitrise pas ne connaissant pas ton environnement de travail.

C'est la base pour construire un outil qui fonctionne.

Le plus dur dans la construction d'une base de données fonctionnelle est sa visualisation et sa conception. Ensuite, les outils de la suite Office permettent de faire des choses surprenantes.

Vu le nombre de données que tu vas avoir à traiter, je pense que la saisie et le stockage des données serait plus judicieux dans Access

Bon courage,
Cordialement.
 

winzek

XLDnaute Nouveau
Bonjour Goube,
Un tout grand merci pour votre travail. C'est une excellente piste.
Je vais effectuer un inventaire des données à sauver et les organiser en table, comme votre exemple. Je vais garder Excel comme outil de développement et de calculs et access pour le stockage des données.
Encore merci pour votre aide et toute bonne journée.
Fabrice
 

goube

XLDnaute Accro
Bonjour,
J'utiliserais plutôt Access pour les tables et surtout ces formulaires, donc le stockage et la saisie et Excel pour la présentation à l'aide de power query ou des TCD.
De plus Access permet à l'aide d'un petit programme de distribuer un exécutable pour les personnes ne disposant pas d'access sur leur poste.
Cordialement.
 

Discussions similaires

Réponses
9
Affichages
342

Statistiques des forums

Discussions
315 146
Messages
2 116 745
Membres
112 849
dernier inscrit
cook974