Gestion de Base de données partagées Excel

Gestion de Base de données partagées Excel - VB/VBA/VBS - Programmation

Marsh Posté le 01-12-2014 à 17:46:58    

Bonjour à tous,
 
Voilà j'ai chercher sur le net et j'ai trouvé plusieurs informations sur la gestion de base de données dans Excel mais uniquement en affichage (actualisation etc ...) seulement voilà mon besoin est le suivant :
 
Je voudrais pouvoir créer un fichier excel "standalone" que je peux diffuser à l'ensemble de mes collaborateurs qui lui pointera vers un fichier excel externe servant de base de données.
 
Un fichier externe qu'on appelera "BDD_XLS" contiendra l'ensemble des données sur une année complète et sera placé sur un repertoire sur le réseau local.
L'autre fichier qu'on appelera "FORM_XLS", sera diffusé, pourra etre stocké sur les postes locaux et ira chercher un certains nombre d'informations comprises dans le fichier "BDD_XLS".
 
Ex : Je ne veux importer que les 5 derniers jours , donc ca representera par ex 15 lignes ... Je veux pouvoir :
- Ajouter / Editer / Supprimer des elements qui seront aussitot repercuter sur le fichier BDD_XLS afin que les autres fichier FORM_XLS puisse récupérer les bonnes infos en quasi temps reel (une actualisation manuelle serait nécessaire)
 
En clair, ayant que des problèmes avec les fichiers partagés et contenant du VBA, je voudrais avoir un formulaire et une feuille récupérant des données d'un fichier externe (utilisation du fichier BDD_XLS fermé).
BDD_XLS
Montant | Date | Statut | Autre
 
Utiliser ces infos pour générer un tableau quotidien (chose qui fonctionne déjà mais sur le fichier local sans accès distant) et pouvoir donc ajouter/éditer/supprimer via un bouton par ex les données importés du fichier BDD pour mettre à jour le fichier BDD_XLS.
Je récupère n lignes, je souhaite modifier la nème ligne et pour se faire j'execute une macro via un bouton du type Export data (avec contrôle de doublon mais la ... c'est une autre histoire)
 
Si qq'un pouvais m'aider ... :)
Merci encore

Reply

Marsh Posté le 01-12-2014 à 17:46:58   

Reply

Marsh Posté le 01-12-2014 à 17:59:26    

Citation :

Je voudrais pouvoir créer un fichier excel "standalone" que je peux diffuser à l'ensemble de mes collaborateurs qui lui pointera vers un fichier excel externe servant de base de données.


Très très mauvaise idée en général. Je ne recommande pas du tout. On ne compte plus le nombre de boîtes qui ont géré leurs données de cette manière, et qui ont dû par la suite payer le prix (très) fort pour tout transférer dans une vraie BD, suite à des manipulations qui font perdre du temps à tout le monde, ou des pertes de données répétées, ou à la dépendance en un seul employé qui est le seul à savoir comment le bousin fonctionne, ou bien des limitations d'Excel, ou bien tout à la fois. Et bien sûr, le scénario ultra classique est que la feuille Excel a commencé avec deux utilisateurs, et au bout de 2-3 ans, il y en a 10, et le système ne tient plus...

 

En résumé: tu cherches à planter un clou avec un tournevis. P-ê que pour un clou, tu y arriveras, mais quand tu en auras 100, tu vas comprendre la galère. Oublie Excel pour stocker des données. Ca n'est pas fait pour ça.
Stocke les données dans une vraie BD relationnelle comme SQL Server Express que tes  utilisateurs accèderont via la feuille Excel et un peu de SQL de base. Ce que tu demandes sera alors très très simple à faire car une BD est étudiée pour ça, Excel pas du tout.


Message édité par el muchacho le 01-12-2014 à 18:40:54

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 01-12-2014 à 22:53:14    

Oui j'en suis conscient, le seul soucis c'est que je dispose sur mon poste d'Excel, Word, PowerPoint ... des répertoires partagés ... mais aucun serveur et donc pas de possibilité d'installer de base SQL.
L'idée est d'avoir un fichier xls ou txt ou csv servant de BDD et d'avoir un fichier permettant d'attaquer cette base.  
Je connais les risques mais les données saisis ne sont pas si sensibles et d'une année sur l'autres ses données seront remises à zéro ^^
J'ai surtout besoin de ces données sur une période d'1 mois (mais je conserve 12 mois glissant par sécurité)
 
Voilà donc je vais chercher encore mais si qu'un ici à une idée ou des fichiers exemples je suis preneur ;)
 
Merci pour ta réponse Muchocho ;)

Reply

Marsh Posté le 02-12-2014 à 10:28:41    

J'insiste: si tu veux faire un outil de collaboration, IL FAUT un serveur partagé. Il y en a forcément un dans votre réseau: le serveur de fichiers (ou même au pire, ta propre machine). Vous pouvez installer le serveur SQL dessus.
Sinon franchement, investissez dans un petit serveur, ça coûte quelques centaines d'euros, c'est rien du tout pour du travail professionnel. La moindre perte de données vous coûtera bcp plus cher en temps perdu. Ca coûtera même moins cher que la mise au point de ton soft qui sera de toute façon tout moisi.

 

Car techniquement, pour ce que tu demandes un fichier txt ou Excel n'est pas adapté. Ton truc ne sera pas fiable, crois-moi. Avec un fichier partagé, il n'est pas possible que deux personnes accèdent au fichier en écriture en même temps, sinon il sera corrompu. C'est le B.A.BA de la concurrence. Donc ça veut dire qu'à chaque fois qu'un utilisateur voudra jouer avec le fichier, il devra prévenir les autres pour qu'ils le relâchent, ce qui n'a pratiquement aucun intérêt pratique par rapport à avant. Si tu veux que plusieurs personnes puissent accéder sans avoir à se coordonner avant, tu es obligé de faire du client-serveur.
S'il y a bcp  de données, ça sera lent en prime car un fichier txt ou Excel ne sont pas du tout faits pour ça. Chaque modification nécessite de lire tout le fichier en RAM, chaque suppression nécessite de réécrire toutes les lignes suivantes, etc. Et le moindre bug corrompt la base, qu'il faudra corriger à la main (si c'est possible), et il faudra faire des sauvegardes manuelles régulières, etc. Tout cela coûte du temps, et donc de l'argent, et n'est pas fiable.
En conséquence, le serveur de base de données est l'outil pour ça. A la rigueur, tu peux voir si tu peux faire quelque chose comme ça avec Access, mais je doute que tu trouveras ici (ou ailleurs) quiconque de sensé pour t'aider à développer ce qui est une mauvaise façon de résoudre ton problème de base.


Message édité par el muchacho le 02-12-2014 à 10:53:11

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 02-12-2014 à 11:18:25    

+1 pour el muchacho.
 
Excel n'a jamais été conçu pour faire de la BD, encoure moins multi-utilisateurs :pt1cable:  Et même si t'avais parlé d'Access, je te l'aurais déconseillé : il fait BD mais mono-poste.
 
Mysql, Postgres, MS Sql express, tout ça, c'est gratuit. Pas de serveur ? Comme indiqué, ton propre PC pour suffire si toutes les machines sont sur le même réseau.
Sinon, pour moins de 300 E, tu peux avoir un petit serveur à base d'un NAS Synology. Le DS213j (ou le plus récent DS215j) coûte environ 170 E sur Amazon; à ça, tu rajoutes 2 HDD de 1 To en RAID1. Pour héberger des fichiers centralisés et qq BD de qq centaines de Mo voire, avec 2-3 applis web au-dessus, ça marche très bien ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-12-2014 à 11:13:15    

Tout d'abord merci à vous deux d'avoir essayer de m'aider ;)
Malheureusement je suis un peu bloqué en terme d'installation de logiciel tiers... Je suis dans un grand groupe et avec mes outils mis à dispo (dont Excel) je souhaitais trouver une solution pour que l'on puisse simplement ajouter/editer/supprimer des données (5/6 valeurs par ligne) sur une période de 365 jours :)
Actuellement j'ai un formulaire en VB qui fait ça mais le soucis c'est que je peux pas partagé mon fichier car il contient justement du VB ... c'est pourquoi j'aurais voulu pouvoir avoir un fichier formulaire fixe et un fichier BDD :)
 
Merci encore pour votre aide ca m'aidera peut etre un jour ;)

Reply

Marsh Posté le 03-12-2014 à 12:07:03    

"mais le soucis c'est que je peux pas partagé mon fichier car il contient justement du VB" :heink: Je comprends pas le pb entre du code VB et le partage...
 
Si t'es dans un grand groupe, 2 cas de figures :
1) un grand groupe ayant des moyens et une DSI, tu fais un ticket pour demander si y'aurait moyen d'héberger ta BD et appli sur un serveur existant (ou à ajouter). Bien entendu, avant, faudra l'aval de ton supérieur pour faire ta demande.
 
2) y'a pas moyen d'avoir un serveur. Contournement possible : les applis en version portable. Wampserver existe en portable pour permettre l'install d'un apache/mysql/php et faire tourner des applis web ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed