Microsoft 365 Bloquer des plages de cellules

kel07

XLDnaute Nouveau
Bonjour,

Dans le fichier Excel sous l’onglet horaire il faudrait que les personnes puissent modifier seulement les cellules pour une période de 3 semaines.

Exemple :

  • Selon la date du jour (disons Aujourd’hui le 15 Mars 2024).
  • La modification des semaines antérieur et des 7 jours suivants ne sont plus modifiables.
  • Donc du mois d’août 2023 au 22 Mars 2024, aucune modification à l’horaire ne peut être accordée.
  • Des ajouts sur les trois semaines suivantes sont possible soit du 25 mars au 12 avril 2024.
  • Et encore une fois il n’y a pas de modification possible du 15 avril au 1 juillet 2024.
  • À chaque nouvelle journée, la plage horaire modifiable et non modifiable change d’une journée.


Exemple 2

  • Selon la date du jour (disons Aujourd’hui le 16 Mars 2024).
  • La modification des semaines antérieur et des 7 jours suivants ne sont plus modifiables.
  • Donc du mois d’août 2023 au 23 Mars 2024, aucune modification à l’horaire ne peut être accordée.
  • Des ajouts sur les trois semaines suivantes sont possible soit du 26 mars au 13 avril 2024.
  • Et encore une fois il n’y a pas de modification possible du 15 avril au 1 juillet 2024.
  • À chaque nouvelle journée, la plage horaire modifiable et non modifiable change d’une journée.


  • Bien sûr que la personne en charge de l’Excel peut changer des choses à sa guise. Il suffirait d’un mot de passe de « l’administration ».
 

Pièces jointes

  • Horaire des sciences (M Trottier-Letarte) (1).xlsx
    385.6 KB · Affichages: 12

kel07

XLDnaute Nouveau
bonjour à tous.
Je vois que toofatboy a bien pris le problème, et j partage ses conclusions.
l'appli ne trouve pas dans le tableau, la date d1, Etrange....
Je suppose que ca fonctionne chez toi Toofatboy?
Attention le format dans le fichier est jjj j mmmm yyyy
un seul chiffre pour le numéro du jour.
Il va falloir étudier le format des cellules contenant les dates

Dans un premier temps:
Dans le module thisworkbook, supprimer ou mettre en commentaire interdiction
la mise en commentaire se fait en mettant ' devant la ligne
Ensuite
dans le module 11
remplacer
d = Date
par
d= cdate( date quelconque sous la forme "1/1/2024")
essayer avec différente date pour voir si toute les dates pose le même problème
Si le message affichant la date s'affiche sans erreur revenir vers nous pour voir quelles dates fonctionnent
A suivre
Malheureusement, je connais pas les VBA et je ne comprends pas du tout ton message et ce que je dois faire. C'est beaucoup trop complexe pour moi.
 

TooFatBoy

XLDnaute Barbatruc
Donc tu ouvres VBE (Visual Basic Editor) par la combinaison de touches <Alt>+<F11>.
A gauche tu dois avoir la liste des feuilles.

Tu double-cliques sur "ThisWorkbook".
Son code doit s'afficher. Il n'y a qu'une seule macro : "Workbook_Open".

Dans cette macro, il n'y a qu'une seule instruction.
Cette instruction appelle la macro qui se nomme "interdiction".

C'est ça que sousou veut te faire bloquer pour l'instant.

Donc tu mets le curseur devant le nom "interdiction" et tu saisies une apostrophe.
La ligne doit alors devenir verte, ce qui veut dire qu'elle en commentaire et donc inactive.
 
Dernière édition:

kel07

XLDnaute Nouveau
Est-ce que tu veux qu'on fasse ensemble ce que sousou te disait de faire ?
(en fait c'est hyper simple)

On peut aussi tenter autre chose.
C'est toi qui voit. ;)
J'ai mis l'apostrophe devant interdiction et le mot est devenu vert. Mais le code erreur 91 reste toujours là. C'est long mes changements car je connais rien et que je dois faire des essaies erreurs.
 

TooFatBoy

XLDnaute Barbatruc
OK, donc maintenant tu as compris le principe pour inhiber une instruction : on la met en commentaire en mettant une apostrophe devant.
Donc, bien sûr, pour réactiver l'instruction, tu enlèves l'apostrophe.



Je te propose un autre test que celui que voulait te faire faire sousou.

Enlève l'apostrophe pour réactiver l'appel de la macro "interdiction".

Ensuite double-clique sur le Module11 pour voir son code.
Il y a plusieurs macros, dont "nommois".
Dans cette macro tu as une ligne
VB:
Set jour = zone.Find(d1, LookIn:=xlValues)
Enlève le 1 pour avoir
VB:
Set jour = zone.Find(d, LookIn:=xlValues)

Clique n'importe où dans la macro "interdiction".
Appuie sur la touche <F5> pour lancer la macro "interdiction".
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 210
Messages
2 086 277
Membres
103 170
dernier inscrit
HASSEN@45