XL 2010 macro qui bug qui feuille protégée

LAPIN-53

XLDnaute Nouveau
Bonjour,
J'ai un souci avec une macro.
Elle fonctionne très bien si la feuille n'est pas protégée, mais ne fonctionne plus après avoir protégé la feuille.
Il s'agit d'une macro qui transforme une serie de chiffre en format datte. Par exemple, je tape 01012020 et s'affiche à l'écran 01/01/2020.
Ma macro s'applique sur toute la feuille, je me demandais si elle ne s'appliquait qu'à ma cellule (K1, dans mon cas) qui n'est pas verrouillée, peut-être fonctionnerait-elle.
Quelqu'un pourrait-il me dire comment transformer ma macro qui s'applique à toute la feuille, juste à la cellule K1.

voici la macro :
Private Sub Worksheet_Change(ByVal Target As Range)
'---Convertit un nombre de 7 ou 8 chiffres en date---
Dim d As Variant
Set Target = Target.Cells(1, 1)
d = Target.Value2
If Not (d Like "#######" Or d Like "########") Then Exit Sub
d = Left(Right(d, 6), 2) & "/" & Left(Right(0 & d, 8), 2) & "/" & Right(d, 4) 'mm/dd/yyyy'
d = ExecuteExcel4Macro("DATEVALUE(""" & d & """)")
If IsNumeric(d) Then
Target.NumberFormat = "dd/mm/yyyy"
Target = d
Else
Target.NumberFormat = "General"
End If
End Sub

Merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour LeLievre,
Si la feuille est protégée ... elle est protégée contre toute écriture humaine ou VBA.
Essayez cela :
VB:
Si pas de mot de passe :
sub XXXX
ActiveSheet.Unprotect
....
Sheets(1).Protect
End Sub

ou si mot de passe :
sub XXXX
ActiveSheet.Unprotect ("mot de passe")
....
Sheets(1).Protect Password:="mot de passe"
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir le fil,
Pour les futurs lecteurs de ce fil qui auraient un XL inférieur ou égal à 2007 (12.0.6787 ) la fonction UserInterfaceOnly est inopérante.
Dans ce cas, utilisez le code du post #2.
Pour les chanceux qui ont une version supérieure, ils ont le choix.
 

jmfmarques

XLDnaute Accro
Pour les futurs lecteurs de ce fil qui auraient un XL inférieur ou égal à 2007 (12.0.6787 ) la fonction UserInterfaceOnly est inopérante.
euh ... inférieur, je n'en sais rien, mais "égal", non : le paramètre (pas la "fonction") userinterfaceonly de la méthode protect fonctionne parfaitement avec la version 2007

PS : la question ne se pose par ailleurs même pas pour ce qui intéresse LELIEVRE, qui nous précise sa version : 2010
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
649

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu