là çà va je maitrise la protection …
C’est le code « verrouiller » « déverrouiller » les macros qui va me manquer
Hello
en debut de macro mettre
Sheets("la feuille a déverrouillé").Unprotect
et en fin de traitement
Sheets("la feuille a verrouillé").Protect
Si tu as plusieurs feuilles. tu colles à la suite ?
C’est à mettre dans chaque macro, je n’ai pas vu tes macros ou celles que FFO t’as faites, qui va modifier une des feuilles protégée
“Pour que la couleur du texte devienne rouge ?”
J’ai interprété cette demande comme étant la couleur de la cellule et non de sa donnée
Désolé !!!
Mets comme ceci :
Range(« A » & Target.Row, « P » & Target.Row).Font.Color = -16776961
Testes à l’appui cela fonctionne
Tous les onglets qui sont modifiés par le traitement doivent être déprotégés à son début et reprotégés à sa fin tel que taz067 l’a très bien décrit merci à lui
Et ce dans toutes les macros
A ta dispos si besoin
Donc si tu as plusieurs feuilles à déverrouiller tu mets, par exemple :
Sheets("feuill1").Unprotect
Sheets("feuill2").Unprotect
Sheets("feuill3").Unprotect ??
Dans le tableau base vierge … tu fais comment pour que çà déverrouille la feuille « S1 » et que çà verrouille les feuilles de S1 à S52 ?
Bonjour
Effectivement autant de feuille autant de ligne de code ainsi :
Sheets(« feuillx »).Unprotect
“tu fais comment pour que çà déverrouille la feuille « S1 »”
Idem :
Sheets(“S1").Unprotect
“et que çà verrouille les feuilles de S1 à S52”
Il suffit que celle pris pour modèle (“S1") le soit car leur création à partir de celle-ci intégrera son verrouillage
Donc juste à verrouiller la feuille “S1" manuellement ou dans le traitement de la création des onglets 2 à 52 en tout début mettre
Sheets(“S1").protect
J’espère que tout est claire pour toi
on peut mettre ceci dans thisworkbook et en ouvrant le fichier, toutes les feuilles restent protégé mais VBA sait modifier sans enlever la protection. Cela fonctionne pour 99% des actions (quelque problèmes avec des autofilter et listobjects).
Au lieu de toutes les feuilles, une selection est aussi possible.
Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Worksheets
sh.Protect userinterfaceonly:=True
Next
End Sub
Cà ne fonctionne pas
J’ai rajouter ce code dans la macro du recap OF du tableau Base vierge pour tir automatiquement les données
Base Vierge.xlsm (244,2 Ko)
Range("A3:S1500").Select
ActiveWorkbook.Worksheets("Recap OF").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Recap OF").Sort.SortFields.Add Key:=Range("A3:S1500") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Recap OF").Sort
.SetRange Range("S4:S1500")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
mais çà ne fonctionne pas ![]()
Euh non
.. je rajoute çà a quel moment dans la macro ??
parce que çà ne vérouille pas les 51 autres feuilles.
En tout début du traitement qui crée les onglets 2 à 52
Base Vierge.xlsm (261,1 Ko)
Tu peux me le faire car j’ai essayé et çà plante la macro dès la création de la 2eme feuille.
Y a une ligne de code a rajouter pour que les données soient trié par ordre alphabétique ??
Effectivement désolé je n’ai pas pris en compte l’actualisation de la cellule “V5” du numéro de la semaine
Celle-ci ne peux se faire que sur un onglet non protégé
Ci-après ton fichier adapté en conséquence
A la fin du traitement de la création de tous les onglets “S02” à “S52” tous ceux-ci ainsi que celui “S01’“ sont en état de protection
important l’onglet modèle “S01” doit être non protégé à l’exécution de cette macro
Testes et dis moi
Base Vierge (2).xlsm (102,9 Ko)
Parfait .. merci ![]()
Au plaisir
À ta dispos une prochaine fois
dans votre macro “traitement”
ActiveSheet.Protect userinterfaceonly:=True '***********************************
Attends je n’ai pas encore fini mon « usine à gaz » ![]()