Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cellules auto-verrouillées par Excel 2003

2 réponses
Avatar
Manbas
Bonjour

Je reviens vers vous après un fil du 13/10. Malgré une réponse supposée
efficace, un certain mystère demeure dans mon fichier.

Sur un gros fichier qui fonctionnait très bien sous 2000, les utilisateurs
sont maintenant bloqués par des cellules verrouillées par Excel 2003.
Ces cellules n'ont pas été verrouillées auparavant.
Aucune commande manuelle ou programmée n'a été exécutée en ce sens.
J'ai reformaté manuellement ces cellules (plusieurs fois), mais à la
réouverture du fichier le problème est à nouveau présent.
Pire, le problème persiste malgré que j'ai programmé les lignes suivantes
juste avant l'accès aux feuilles:

Sub ModifFeuille()
Dim sh
For Each sh In Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "août", _
"Septembre", "Octobre", "Novembre", "décembre")
With Sheets(sh)
.Visible = True
.Unprotect
End With
VerrouCell
With Sheets(sh)
.Visible = True
.Protect UserInterfaceOnly:=True
End With
Next sh
End Sub

Sub VerrouCell()
'verrouiller toutes les colonnes
Range("P10:HH114").Select
Selection.Locked = True
Selection.FormulaHidden = False
'deverrouiller les colonnes administrateur
Range("P10:P114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("Z10:Z114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("AJ10:AJ114").Select
Selection.Locked = False
Selection.FormulaHidden = False
...etc...

Ce qui est complètement incompréhensible pour moi, c'est que les cellules
des colonnes souhaitées "déverrouillées" semblent verrouillées de manière
aléatoire, en damier irrégulier et changeant.
Dans le fichier les seules commandes portant sur la structure sont des
largeurs de colonne (réduites à zéro, puis rétablies) et la protection
retirée puis re-instaurée avec UserInterfaceOnly=True.

Selon vous serait-ce ce dernier code qui induirait le problème ?
UserInterfaceOnly=True sont en effet les derniers mots après le
déverrouillage par macro.
Auriez-vous une autre idée?

Merci ++++ d'avance pour votre aide.

2 réponses

Avatar
LSteph
Bonsoir ,

Pour être efficace , userinterfaceonly doit être lancé depuis le
workbook_open une fois pour toutes.
si tant est que ce soit cela que tu veuilles,
ainsi , ensuite la protection est active sur les actions de
l'utilisateur mais pas sur les macros.


pour le reste je ne comprend pas vraiment ce que tu essayes de faire
mais les select sont inutiles.

> Ces cellules n'ont pas été verrouillées auparavant.
...
> aléatoire, en damier irrégulier et changeant.
avec 2003 jamais vu ce phénomène.


Cordialement.

--
lSteph



Manbas a écrit :
Bonjour

Je reviens vers vous après un fil du 13/10. Malgré une réponse supposée
efficace, un certain mystère demeure dans mon fichier.

Sur un gros fichier qui fonctionnait très bien sous 2000, les utilisateurs
sont maintenant bloqués par des cellules verrouillées par Excel 2003.
Ces cellules n'ont pas été verrouillées auparavant.
Aucune commande manuelle ou programmée n'a été exécutée en ce sens.
J'ai reformaté manuellement ces cellules (plusieurs fois), mais à la
réouverture du fichier le problème est à nouveau présent.
Pire, le problème persiste malgré que j'ai programmé les lignes suivantes
juste avant l'accès aux feuilles:

Sub ModifFeuille()
Dim sh
For Each sh In Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "août", _
"Septembre", "Octobre", "Novembre", "décembre")
With Sheets(sh)
.Visible = True
.Unprotect
End With
VerrouCell
With Sheets(sh)
.Visible = True
.Protect UserInterfaceOnly:=True
End With
Next sh
End Sub

Sub VerrouCell()
'verrouiller toutes les colonnes
Range("P10:HH114").Select
Selection.Locked = True
Selection.FormulaHidden = False
'deverrouiller les colonnes administrateur
Range("P10:P114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("Z10:Z114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("AJ10:AJ114").Select
Selection.Locked = False
Selection.FormulaHidden = False
...etc...

Ce qui est complètement incompréhensible pour moi, c'est que les cellules
des colonnes souhaitées "déverrouillées" semblent verrouillées de manière
aléatoire, en damier irrégulier et changeant.
Dans le fichier les seules commandes portant sur la structure sont des
largeurs de colonne (réduites à zéro, puis rétablies) et la protection
retirée puis re-instaurée avec UserInterfaceOnly=True.

Selon vous serait-ce ce dernier code qui induirait le problème ?
UserInterfaceOnly=True sont en effet les derniers mots après le
déverrouillage par macro.
Auriez-vous une autre idée?

Merci ++++ d'avance pour votre aide.






Avatar
Manbas
Merci LSteph.
Incompréhensible, hein?!
Comment des cellules non verrouillées avant peuvent-elles l'être après?


"LSteph" a écrit dans le message de news:

Bonsoir ,

Pour être efficace , userinterfaceonly doit être lancé depuis le
workbook_open une fois pour toutes.
si tant est que ce soit cela que tu veuilles,
ainsi , ensuite la protection est active sur les actions de l'utilisateur
mais pas sur les macros.


pour le reste je ne comprend pas vraiment ce que tu essayes de faire
mais les select sont inutiles.

> Ces cellules n'ont pas été verrouillées auparavant.
...
> aléatoire, en damier irrégulier et changeant.
avec 2003 jamais vu ce phénomène.


Cordialement.

--
lSteph



Manbas a écrit :
Bonjour

Je reviens vers vous après un fil du 13/10. Malgré une réponse supposée
efficace, un certain mystère demeure dans mon fichier.

Sur un gros fichier qui fonctionnait très bien sous 2000, les
utilisateurs sont maintenant bloqués par des cellules verrouillées par
Excel 2003.
Ces cellules n'ont pas été verrouillées auparavant.
Aucune commande manuelle ou programmée n'a été exécutée en ce sens.
J'ai reformaté manuellement ces cellules (plusieurs fois), mais à la
réouverture du fichier le problème est à nouveau présent.
Pire, le problème persiste malgré que j'ai programmé les lignes suivantes
juste avant l'accès aux feuilles:

Sub ModifFeuille()
Dim sh
For Each sh In Array("Janvier", "Février", "Mars", "Avril", "Mai",
"Juin", "Juillet", "août", _
"Septembre", "Octobre", "Novembre", "décembre")
With Sheets(sh)
.Visible = True
.Unprotect
End With
VerrouCell
With Sheets(sh)
.Visible = True
.Protect UserInterfaceOnly:=True
End With
Next sh
End Sub

Sub VerrouCell()
'verrouiller toutes les colonnes
Range("P10:HH114").Select
Selection.Locked = True
Selection.FormulaHidden = False
'deverrouiller les colonnes administrateur
Range("P10:P114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("Z10:Z114").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("AJ10:AJ114").Select
Selection.Locked = False
Selection.FormulaHidden = False
...etc...

Ce qui est complètement incompréhensible pour moi, c'est que les
cellules des colonnes souhaitées "déverrouillées" semblent verrouillées
de manière aléatoire, en damier irrégulier et changeant.
Dans le fichier les seules commandes portant sur la structure sont des
largeurs de colonne (réduites à zéro, puis rétablies) et la protection
retirée puis re-instaurée avec UserInterfaceOnly=True.

Selon vous serait-ce ce dernier code qui induirait le problème ?
UserInterfaceOnly=True sont en effet les derniers mots après le
déverrouillage par macro.
Auriez-vous une autre idée?

Merci ++++ d'avance pour votre aide.