VBA et partage de classeur

Bonjour,

J'essaie d'améliorer un outil du travail (classeur excel rempli par plusieurs personnes). Mon objectif est de créer des listes de choix où plusieurs choix peuvent être sélectionnés. J'ai fait quelques recherches sur internet et je suis tombé sur un tuto qui m'a permis de faire ce que je cherchais avec quelques adaptations du code VBA (je suis loin d'être un spécialiste, donc je m'excuse par avance si mon code n'est pas très joli/pratique/concis...).

Mon souci c'est que le classeur est normalement en mode partage (sur un réseau interne) pour permettre une modification en parallèle par plusieurs personnes. Mon code fonctionne correctement hors partage mais lorsque je réactive le partage, j'ai une erreur d’exécution 1004 (impossible de définir la propriété Height de la classe OLEObject).

J’ai essayé d’identifier et de résoudre l’erreur. Elle vient de la partie qui définit la fenêtre de choix (height, widht, top et left). Sans celle-ci, le code fonctionne en partage mais le souci c’est que sans cette partie, ma fenêtre de choix ne se place pas au bon endroit et ses dimensions varient. J'ai mis un fichier d'exemple car cela vaut mieux qu'un long discours...
Je n’ai trouvé aucune solution malgré mes recherches alors j’ai décidé de solliciter votre aide.

Alors oui, je suis d'accord que le plus simple serait de ne pas partager l'outil et que chacun le ferme après sa saisie pour que les autres puissent s'en servir. Malheureusement, comme on le sait, les mauvais comportements sont difficiles à faire évoluer et s'il est possible d'adapter mon code pour permettre le partage, ça me ferait gagner du temps.

Par avance, merci à l'aide que vous pourrez m'apporter.

Bonjour,

Je me permets de relancer car je vois que le sujet a été consulté par plusieurs personnes mais sans qu'il y ait de réponse.

Est-ce que cela veut dire que mon problème est insoluble (à part l'option de ne plus partager le classeur) ou trop compliqué ? Ou alors une autre raison ? N'hésitez pas à me demander s'il manque des informations.

Bonne journée à tous.

Bonjour,

Comme vous l'avez constaté, le partage de votre classeur n'est pas possible avec le positionnement dynamique de vos Listbox's.

Par ailleurs, une solution aurait été possible en travaillant à plusieurs sur le classeur en lecture seule et en ne le mettant à jour qu'à la fermeture. Mais la mise à jour de l'un risque d'écraser celle de l'autre car elle concerne la même feuille sans distinction possible des cellules concernées.

Merci pour ce retour.

Comme vous n'en faites pas mention, je suppose qu'il n'est pas possible de revoir le code pour le rendre acceptable vis-à-vis du partage de classeur ?

Bonjour,

Même si vous révisez votre code pour pouvoir partager votre classeur, vous aurez de toute façon des conflits de mises à jour car elles concernent la même feuille et éventuellement les mêmes cellules.

Bonjour,

Elles concerneront en effet la même feuille mais il est assez peu probable qu'elles concernent les mêmes cellules.

En effet, dans les faits chaque utilisateur est responsable d'un certain nombre de lignes propres (son portefeuille) et est donc amené à apporter des modifications uniquement sur ses lignes (d'ailleurs, l'utilisateur responsable de la ligne est identifié dans une des case de celle-ci). Le classeur a été construit en regroupant toutes les données pour permettre aux utilisateurs d'avoir une vision globale (connaître le remplissage d'une ligne n'appartenant pas à son portefeuille) et pour pouvoir opérer des bascules de responsable des lignes (par exemple suite à une réorganisation des portefeuilles).

Bonjour,

tu pourrais mettre ta liste dans un userform. Lui, tu pourras le placer.

Par contre calculer sa position est prise de tête.
eric

Merci. Je vais regarder si j'arrive à m'en sortir avec cette idée. Je vous tiens au courant.

J'ai l'impression que l'on sort largement de ma zone de compétence avec l'userform. C'étaient déjà mes premiers essais en vba et j'y ai passé pas mal de temps. Je vais voir à l'usage si les utilisateurs se font au classeur non partagé avant de décider s'il faut que j'y consacre encore plus de temps en modifiant le code.

Merci à vous pour votre aide.

Rechercher des sujets similaires à "vba partage classeur"