Bonjour à toutes et tous,
Mon fichier est sur un drive pour permettre l'accès à plusieurs utilisateurs en simultanée.
A l'ouverture du fichier se déclenche une macro qui va :
- chercher une ligne de libre dans une feuille tampon qui sert à stocker les réponses utilisateurs et y inscrire son ID. Le numéro de ligne est mémorisée dans une variable publique "ligne_stockage_controle_macro"
- créer une feuille de travail dédiée à l'utilisateur (base filtrée n'affichant que les données liées à cet utilisateur). Ces données sont utilisées ensuite dans une listbox. Cette feuille est nommée base_filtrée & "ligne_stockage_controle_macro
A la demande de validation par l'utilisateur, la macro recherche dans la feuille "Base de données" une ligne libre pour y stocker les infos définitives.
Avant chaque action d'affichage de données, je fais un ActiveWorkbook.RefreshAll
Après chaque écriture je fais un ActiveWorkbook.Save
Normalement sauf action dans la même seconde, deux utilisateurs ne peuvent jamais écrire sur la même ligne. Je me disais donc que je n'aurais pas de conflit à gérer demandant de choisir entre les différentes versions utilisateurs.
Raté : j'ai des messages de conflits, des refus d'enregistrement, des demandent de refresh....
Quelqu'un a t'il déjà plancher la dessus ? Comment avez vous résolu les problèmes.
J'ai déjà passé beaucoup de temps pour écrire ce code et je ne voudrais pas tout mettre à la poubelle.
Dans l'immédiat je ne joins pas le code qui commence à être lourd. Dites moi si vous voulez le voir.
Merci infiniment
Mon fichier est sur un drive pour permettre l'accès à plusieurs utilisateurs en simultanée.
A l'ouverture du fichier se déclenche une macro qui va :
- chercher une ligne de libre dans une feuille tampon qui sert à stocker les réponses utilisateurs et y inscrire son ID. Le numéro de ligne est mémorisée dans une variable publique "ligne_stockage_controle_macro"
- créer une feuille de travail dédiée à l'utilisateur (base filtrée n'affichant que les données liées à cet utilisateur). Ces données sont utilisées ensuite dans une listbox. Cette feuille est nommée base_filtrée & "ligne_stockage_controle_macro
A la demande de validation par l'utilisateur, la macro recherche dans la feuille "Base de données" une ligne libre pour y stocker les infos définitives.
Avant chaque action d'affichage de données, je fais un ActiveWorkbook.RefreshAll
Après chaque écriture je fais un ActiveWorkbook.Save
Normalement sauf action dans la même seconde, deux utilisateurs ne peuvent jamais écrire sur la même ligne. Je me disais donc que je n'aurais pas de conflit à gérer demandant de choisir entre les différentes versions utilisateurs.
Raté : j'ai des messages de conflits, des refus d'enregistrement, des demandent de refresh....
Quelqu'un a t'il déjà plancher la dessus ? Comment avez vous résolu les problèmes.
J'ai déjà passé beaucoup de temps pour écrire ce code et je ne voudrais pas tout mettre à la poubelle.
Dans l'immédiat je ne joins pas le code qui commence à être lourd. Dites moi si vous voulez le voir.
Merci infiniment