Avertir un user qui modifie une cellule qu'il est en read only
Résolu
lys3r3
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
lys3r3 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
lys3r3 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans le cadre professionnel, je met à jour le code VBA d'un fichier vieux de plus de 15 ans.
J'ai donc modernisé et simplifié les anciennes fonctionnalités mises en place,
j'en ai rajouté d'autres,
en revanche, à l'époque il n'y avait qu'un seul utilisateur, maintenant il y'en a plus de 40...
Il a donc été mis en place des sécurités pour que seules 3 personnes puissent être en écriture sur le fichier (un mot de passe pour empêcher l'ouverture en écriture changeant régulièrement)
Néanmoins, il arrive que les comptables ayant accès au fichier en écriture se retrouve à consulter simultanément le fichier, donc l'un d'entre eux est en écriture et les autres également en lecture.
Il arrive également que ce fichier reste ouvert en lecture seule chez un agent ayant l'autorisation d'écrire dessus et que celui-ci par erreur modifie le document en pensant être en écriture... Et lors de l'enregistrement, boum, impossible puisque la personne est en lecture seule.
J'ai donc déjà rajouté cette petite macro au début de chaque autre macro
Mais, si cette option me convient pour les actions directes des utilisateurs sur les macros, elle ne fonctionne bien sur pas quand un utilisateur souhaite modifier un libellé ou la valeur d'une case.
Il me semble qu'il est possible d'ajouter un petit quelque chose qui prévient ce désagrément directement dans le workbook mais je ne sais pas comment le tourner et les aides à ce sujet sont plutôt maigres (après il est aussi possible que j'ai mal formulé ma recherche)
Pouvez-vous m'aider ? Ou me renvoyer vers le topic idoine si cette demande a déjà été traitée ?
Il s'agit d'un fichier excel 2003
Dans le cadre professionnel, je met à jour le code VBA d'un fichier vieux de plus de 15 ans.
J'ai donc modernisé et simplifié les anciennes fonctionnalités mises en place,
j'en ai rajouté d'autres,
en revanche, à l'époque il n'y avait qu'un seul utilisateur, maintenant il y'en a plus de 40...
Il a donc été mis en place des sécurités pour que seules 3 personnes puissent être en écriture sur le fichier (un mot de passe pour empêcher l'ouverture en écriture changeant régulièrement)
Néanmoins, il arrive que les comptables ayant accès au fichier en écriture se retrouve à consulter simultanément le fichier, donc l'un d'entre eux est en écriture et les autres également en lecture.
Il arrive également que ce fichier reste ouvert en lecture seule chez un agent ayant l'autorisation d'écrire dessus et que celui-ci par erreur modifie le document en pensant être en écriture... Et lors de l'enregistrement, boum, impossible puisque la personne est en lecture seule.
J'ai donc déjà rajouté cette petite macro au début de chaque autre macro
'macro pour le nouvel engagement
'avant d'activer une macro, vérifier que le fichier est accessible en écriture
If ActiveWorkbook.ReadOnly Then
'le classeur est en lecture seule, message d'alerte
MsgBox ("Attention, le classeur est ouvert en lecture seule, cette procédure va être interrompue.")
'ARRET DU TRAITEMENT
End
End If
'cas ou le classeur n'est pas en lecture seule
'ne pas mettre à jour l'affichage d'excel quand les macros tournent.
Application.ScreenUpdating = False
'Afficher toutes les données et suppression des filtres seulement s'il y'en a
'vérifier s'il y'a des filtres sur la feuille
If ActiveSheet.FilterMode Then
'si oui, les remettre en position neutre
ActiveSheet.ShowAllData
End If
Mais, si cette option me convient pour les actions directes des utilisateurs sur les macros, elle ne fonctionne bien sur pas quand un utilisateur souhaite modifier un libellé ou la valeur d'une case.
Il me semble qu'il est possible d'ajouter un petit quelque chose qui prévient ce désagrément directement dans le workbook mais je ne sais pas comment le tourner et les aides à ce sujet sont plutôt maigres (après il est aussi possible que j'ai mal formulé ma recherche)
Pouvez-vous m'aider ? Ou me renvoyer vers le topic idoine si cette demande a déjà été traitée ?
Il s'agit d'un fichier excel 2003
A voir également:
- Avertir un user qui modifie une cellule qu'il est en read only
- Excel cellule couleur si condition texte - Guide
- Diviser une cellule excel en deux horizontalement ✓ - Forum Excel
- Common interface 5v only - Forum TV & Vidéo
- Aller à la ligne dans une cellule excel - Guide
- C'est quoi une CI card ? ✓ - Forum TV & Vidéo
2 réponses
Bonjour,
Tu peux mettre du code dans
Workbook_SheetSelectionChange
ou
Workbook_SheetChange
qui rappelle à l'utilisateur que le fichier est en lecture seule.
Mais l'information lecture seule lui est déjà donnée à l'ouverture du fichier...
A+
Tu peux mettre du code dans
Workbook_SheetSelectionChange
ou
Workbook_SheetChange
qui rappelle à l'utilisateur que le fichier est en lecture seule.
Mais l'information lecture seule lui est déjà donnée à l'ouverture du fichier...
A+
Merci beaucoup, ça fonctionne, je n'avais pas pensé à un truc aussi simple...
Je suis bien d'accord avec toi Zoul, à l'ouverture l'utilisateur est averti, mais après deux ou trois heures dans plusieurs fichiers excel en simple consultation, mes utilisateurs ont tendance à oublier qu'ils sont en lecture seule... ^^
Je suis bien d'accord avec toi Zoul, à l'ouverture l'utilisateur est averti, mais après deux ou trois heures dans plusieurs fichiers excel en simple consultation, mes utilisateurs ont tendance à oublier qu'ils sont en lecture seule... ^^