Verouiller le cellules contenant des formules, mise par macro...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais verrouiller les cellules, dès que celles-ci ont ces formules...mon code, comment le modifier :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.[E:E], Target) Is Nothing Or Target.Row < 2 Then Exit Sub
Me.Cells(Target.Row, 1).FormulaR1C1 = "=IF(RC[4]="""","""",(TEXT(RC[4],""aaaa"")))"
Me.Cells(Target.Row, 2).FormulaR1C1 = "=IF(RC[3]="""","""",INT((MONTH(RC[3])+5)/6))"
Me.Cells(Target.Row, 3).FormulaR1C1 = "=IF(RC[2]="""","""",INT((MONTH(RC[2])+2)/3))"
Me.Cells(Target.Row, 4).FormulaR1C1 = "=IF(RC[1]="""","""",(TEXT(RC[1],""mmmm"")))"
Me.Cells(Target.Row, 9).FormulaR1C1 = "=IF(RC[-1]="""",0,VLOOKUP(RC[-1],Base,2,0))"
Me.Cells(Target.Row, 13).FormulaR1C1 = "=IF(RC[-8]="""",0,IF(RC[-2]+RC[-1]=0,0,RC[-2]+RC[-1]))"
Me.Cells(Target.Row, 14).FormulaR1C1 = "=IF(RC[-5]=0,0,IF(RC[-1]<>RC[-5],0,VLOOKUP(RC[-6],Base,3,0))*RC[-1])"
Me.Cells(Target.Row, 17).FormulaR1C1 = "=IF(RC[-4]=RC[-8],"""",""x"")"

End Sub

Merci pour le temps que vous voudrez bien vouloir m'accorder.
Bien amicalement,
Christian
 
Re : Verouiller le cellules contenant des formules, mise par macro...

re, Bonjour Pierrot , le forum,

ça ne fonctionne pas...

Mon fonctionnement :
j'appelle, par double clik cellule en colonne E, un calendrier, je choisis une date et la macro place les formules , je souhaiterais aussitôt voir les cellules contenant les formules ainsi placées verrouillées...

à+
cHRISTIAN
 
Re : Verouiller le cellules contenant des formules, mise par macro...

re, le forum, Pierrot,


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.[E:E], Target) Is Nothing Or Target.Row < 2 Then Exit Sub
Me.Cells(Target.Row, 1).FormulaR1C1 = "=IF(RC[4]="""","""",(TEXT(RC[4],""aaaa"")))"
Me.Cells(Target.Row, 2).FormulaR1C1 = "=IF(RC[3]="""","""",INT((MONTH(RC[3])+5)/6))"
Me.Cells(Target.Row, 3).FormulaR1C1 = "=IF(RC[2]="""","""",INT((MONTH(RC[2])+2)/3))"
Me.Cells(Target.Row, 4).FormulaR1C1 = "=IF(RC[1]="""","""",(TEXT(RC[1],""mmmm"")))"
Me.Cells(Target.Row, 9).FormulaR1C1 = "=IF(RC[-1]="""",0,VLOOKUP(RC[-1],Base,2,0))"
Me.Cells(Target.Row, 13).FormulaR1C1 = "=IF(RC[-8]="""",0,IF(RC[-2]+RC[-1]=0,0,RC[-2]+RC[-1]))"
Me.Cells(Target.Row, 14).FormulaR1C1 = "=IF(RC[-5]=0,0,IF(RC[-1]<>RC[-5],0,VLOOKUP(RC[-6],Base,3,0))*RC[-1])"
Me.Cells(Target.Row, 17).FormulaR1C1 = "=IF(RC[-4]=RC[-8],"""",""x"")"

Target.Locked = True

End Sub

Avec ma feuille verrouillée
ça plante sur la prière ligne :Me.Cells(Target.Row, 1).FormulaR1C1 = "=IF(RC[4]="""","""",(TEXT(RC[4],""aaaa"")))"

à vous lire, merci pour votre aide,
Christian
 
Re : Verouiller le cellules contenant des formules, mise par macro...

Re,

pour qu'un code puisse fonctionner sur une feuille protégée, il faut que la protection soit faite par le code en utilant l'argument "userinterfaceonly", code ci-dessous à placer dans le module "thisworkbook", se déclenche à l'ouverture du classeur :
Code:
Option Explicit
Private Sub Workbook_Open()
Feuil1.Protect "toto", userinterfaceonly:=True
End Sub
)
 
Re : Verouiller le cellules contenant des formules, mise par macro...

Re, le forum, Pierrot,

J'ai suivi exactement tes recommandations, plus installation de ton code ci-dessus, mais ça plante lors de la validation date, en fait toutes les cellules contenant du texte se verrouillent, mais ce que je souhaite c'est verrouiler que les cellules contenant des formules.

à vous lire,
Christian
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
508
Réponses
4
Affichages
243
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
11
Affichages
783
Réponses
5
Affichages
244
Retour