Microsoft 365 Partager des fonctions avec d'autres utilisateurs

Pouet26

XLDnaute Nouveau
Bonjour tout le monde,

Je suis à la recherche de la meilleure solution technique pour développer des fonctions Excel personnalisées qui seront utilisées par plusieurs collègues dans un grand nombre de classeurs.

En prenant un exemple très simple, imaginons que je dispose sur le réseau d'une petite base de données comportant 2 colonnes "Code client" et "Intitulé client".

Comment puis je faire techniquement pour que n'importe quel collègue puisse disposer, dans n'importe lequel de ses classeurs, d'une fonction "AfficherClient()" qui renverrai l'intitulé du client correspondant au code client désigné en argument ?

J'espère avoir exposé mon problème de façon suffisamment claire et je vous remercie par avance pour votre aide.

Bonne journée à tous et Pouet !
 
C

Compte Supprimé 979

Guest
Bonjour Pouet26

Pour moi une solution est d'enregistrer ces fonctions dans fichier ".xlam" macros complémentaires
Ce fichier ainsi que la BdD serait dans un dossier commun sur le serveur

Il suffit ensuite d'ajouter la macro complémentaire à chaque Excel de chaque poste
Petite astuce, au message, voulez-vous copier le fichier en local, répondre : NON

Ainsi, chaque utilisateur se servira de la macro complémentaire du serveur, qu'il sera facile de mettre à jour si nécessaire.

L'accès à la BdD doit se faire via un chemin UNC "\\MonServeur\MonDossier\MaBase.xlsx"

Espérant que cela pourra t'aider 😉

A+
 

Pouet26

XLDnaute Nouveau
Bonjour @BrunoM45 et un grand merci pour ta réponse !

Non seulement ça répond à ma question, mais ça répond également à toutes les autres questions que je me serai posé derrière 😁 C'est parfait !

J'ai juste une petite interrogation quant à la mise en place concrète.

Si un collègue utilise une fonction partagée de type "RechercheV dans une base commune", il va avoir droit, à chaque recalcul de son classeur, à un cycle "Ouverture de la base / Recherche de la réponse / Fermeture de la base" pour chaque cellule où il utilise la fonction ?

Dans l'affirmative, existe - t - il une solution pour alléger tout ça sans en arriver à bloquer le calcul automatique ? Enregistrer la base dans un fichier CSV (moins gourmand en ressources) ? Utiliser une liaison type ADO pour éviter d'ouvrir le fichier ?
 
C

Compte Supprimé 979

Guest
Salut Pouet26

Une liaison de type ADO est rapide et efficace à mes yeux, mais Il n'y a pas de solution miracle 🤔

Pour éviter les lenteurs, on peut mettre le calcul en manuel, mais il ne faudra pas oublier de réactiver le calcul automatique.

Perso en BdD, j'utilise des fichiers en ".xlsx" ;)

A+
 

Pouet26

XLDnaute Nouveau
Je te remercie pour tous ces éléments @BrunoM45.

J'avais remarqué pour ma part une performance légèrement meilleure avec des .xlsb mais c'était vraiment dérisoire et variable.

Je vais quand même essayer de tester avec une base Excel qui se duplique en .CSV à chaque enregistrement. Je suis sûr que l'ouverture / chargement des données dans une variable tableau / fermeture peut être très performante.

Un grand merci pour ton aide @BrunoM45 !
 

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg