Dévérouillage de plages de cellules selon la date

mika121

XLDnaute Nouveau
Bonjour,

N'étant pas une lumière en Excel j'apprend petit à petit sur les forums...celui ci m'ayant déja beaucoup servi, je vous adresse finalement mon problème. Désolé par avance si le topic existe déja, je ne l'ai pas trouvé...Je vais donc essayer une description détaillée:

je travaille actuellement sous Excel 2003

Je dois envoyer un Excel de plusieurs feuilles(10) à des opérateurs afin qu'ils remplissent des données mensuellement trimestriellement ou annuellement (5 plages disposés dans 5 feuilles au milieu d'autres cellules protégées). Ce tableau m'est renvoyé tous les mois.

Chaque plage à remplir de chaque feuille est donc organisé comme suit:
les lignes correspondent à l'intitulé des données (nombre fixe de ligne par feuille mais différent selon la feuille)
les colonnes correspondent au mois (12 colonnes donc)

Certaines de ces données sont par la suite extraites par la macro d'un autre fichier pour les retraiter.

Mon problème se situe dans le fait qu'il n'y a pas de sauvegarde au niveau du rapport envoyé aux opérateurs(le même fichier servant pour tous les mois pendant un an). Ainsi si le dit opérateur rempli les données du mois de mars au lieu de celles du mois d'avril, les données du mois de mars sont perdues et celles du mois d'avril inexistantes.

J'aimerai donc
Au lieu de sauvegarder chaque rapport dans un dossier lorsqu'il me le renvoie chaque mois
Déverrouiller les cellules selon le mois actuel lors de l'ouverture du fichier(et par la suite selon le mois qu'il choisiraé via une box mais je n'en suis pas encore là)

J'ai pour l'instant protégé et verrouillé toutes les feuilles et cellules, mais je n'arrive pas à dévérouiller la plage du mois (pour janvier E15:E21) via la macro qui se lance au démarrage dans ThisWorkbook via :

Private Sub Workbook_Open()
Update.UnProtect
End Sub

La macro est en elle même :

Sub UnProtect()
Dim Today As Date
Today = Date
Sheets("HSE").Range(Cells(15, DatePart("m", Today) + 4), Cells(21, DatePart("m",
Today) + 4)).UnProtect
End Sub

Le message d'erreur qui s'affiche est le suivant :
"Propriété ou méthode non gérée par cet objet"

J’ai l’impression que Unprotect ne s’applique qu’à des feuilles mais donc comment faire ???

Je remercie par avance ceux qui me répondrons et espère avoir été assez clair. Je ne peux malheureusement pas mettre le fichier en pièce jointe mais n'hésitez pas à me poser des questions j'essaierai de répondre aussi promptement que possible!

Mika
 

JNP

XLDnaute Barbatruc
Re : Dévérouillage de plages de cellules selon la date

Bonjour Mika121 et bienvenue :),
Code:
Sheets("HSE").Range(Cells(15, DatePart("m", Today) + 4), Cells(21, DatePart("m",
Today) + 4)).Locked = True
peut être :p...
Bonne soirée :cool:
 

mika121

XLDnaute Nouveau
Re : Dévérouillage de plages de cellules selon la date

Hm je n'y avais pas pensé, mais il m'indique néanmoins le message d'erreur suivant après modif:
(je veux dévérouiller les cellules qui sont déjà vérouillées en fait, mais peut être que l'on ne peut rien faire sur des cellules vérouillées?):

Sheets("HSE").Range(Cells(15, DatePart("m", Today) + 4), Cells(21, DatePart("m",
Today) + 4)).Locked = False

"impossible de définir la propriété locked de la classe range"

dur dur!

et j'entend la sonnerie du weekend...duuur
 

JNP

XLDnaute Barbatruc
Re : Dévérouillage de plages de cellules selon la date

Re :),
Pour modifier les propriétés des cellules, il faut que la feuille ne soit pas vérouillée :p...
Donc ton code doit ressembler à ça :rolleyes:...
Code:
Sub Dévérouille()
With Sheets("Feuil1")
    .Unprotect
    .Range("A1:A10").Locked = False
    .Protect
End With
End Sub
et ça
Code:
Sub Vérouille()
With Sheets("Feuil1")
    .Unprotect
    .Range("A1:A10").Locked = True
    .Protect
End With
End Sub
Bon WE :cool:
 

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander