bloquer formules dans les cellules

R

rudaye

Guest
Bonjour à tous!!!

Petite question j'ai insérer des formules dans beaucoups de cellules de mon classeur et je l'utilise pour le boulot mais je voudrais être le seul à pouvoir modifier les formules!

Y a t il un moyen de bloquer les formules pour que personne n'y touche ou tout le monde peut les modifier??

merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Rudyperray, bonjour le forum,

Par défaut toutes les cellules d'un onglet sont verrouillées. Il faut que tu commences par déverrouiller toutes les cellules que tu souhaites laisser modifiables par l'utilisateur. Pour cela, sélectionnes ces cellules pusi menu Format / Cellule..., clique sur l'onglet Protection et décoche la case à cocher Verrouillée. Ensuite protège ton classeur (avec ou sans mot de passe) par le menu Outil / Protection / Protéger la feuille.... Le résultat de tout ça c'est que l'utilisateur ne pourra plus, par erreur ou sciemment, modifier une autre cellule que celles que tu auras déverrouillées. Un message apparaîtra indiquant que la feuille est protégée ainsi que la procédure pour la déprotéger. Attention ! si un mot de passe est suffisant pour l'utilisateur commun, il reste un jeu d'enfant pour les Ti_pes balèzes de ce forum que je ne citerais pas...
 

JMV

XLDnaute Nouveau
Bonjour,

Une autre solution consiste à transformer tes formules en fonction VBA. C'est pas forcément plus sûr contre les experts, mais c'est beaucoup plus facile à gérer.
Pour mon entreprise, j'ai créé un module.xla qui permet en plus à chacun de diposer de mes formules dans ses feuilles sans pouvoir les modifier.
Si tu veux en savoir plus dis-le moi via le forum.

Jean-Marc
 
R

rudaye

Guest
Bonjour à tous!

JMV me disait que l'on pouvait transformer des formules en fonction VBA comment cela peut se faire ?


ex:

=SOMMEPROD((ColUMai=7)*(ColGetMai='BS')*
((ColCreationMai='ý')+(ColRefonteMai='ý'))*(ColPanneMai='o'))


et cette formule je l'utilise 12 fois pour les mois de l'année juste en changant :

=SOMMEPROD((ColUJuin=7)*(ColGetJuin='BS')*
((ColCreationJuin='ý')+(ColRefonteJuin='ý'))*(ColPanneJuin='o'))
 
R

rudaye

Guest
J'ai transformer ma formule en focntion VBA mais j'utilise cette formule 5 fois en changant 'BS' en cellule C19 par:
'NORM' en D19
'NO' en E19
'SO' en F19
'Est' en G19

je voudrais que la macro gère cette formule pour les 5 cellules

voici la macro que j'ai en C19 !!
Sub Macro_MES400Mai()
' Macro_MES400Mai Macro
' Macro enregistrée le 17/07/2005 par Rudy
Range('C19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''BS'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('C19').Select
End Sub


Que dois je modifier pour qu'elle gère mes 5 cellules ??

merci d'avance
 
R

rudaye

Guest
J'ai essayé ça et ça fonctionne mais cela veut dire que je dois pour chaque mois et chaque équipe retaper la formule

Sub Macro_MES400Mai()
' Macro_MES400Mai Macro
' Macro enregistrée le 17/07/2005 par Rudy

' Partie MES 400KV pour GET BASSE SEINE
Range('C19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''BS'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('C19').Select

' Partie MES 400KV pour GET NORMANDIE
Range('D19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''NORM'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('D19').Select

' Partie MES 400KV pour GET Nord Ouest
Range('E19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''NO'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('E19').Select

' Partie MES 400KV pour GET Sud Ouest
Range('F19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''SO'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('F19').Select

' Partie MES 400KV pour GET EST
Range('G19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''Est'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý''))*(ColPanneMai=''o''))'
Range('G19').Select


End Sub


N'y a t il pas moyen de faire une boucle ??

merci
 

Celeda

XLDnaute Barbatruc
Bonjour,

En effet, comme le dit si bien Robert, les Ti_Fans peuvent faire péter n'importe quoi, aussi essaye donc cette procédure à placer dans le module de la feuille; à chaque fois qu'une formule se sentira chatouillée elle forcera l'utilisateur à passer dans une autre cellule:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.HasFormula = True Then
Target.Offset(, 1).Select
End If
End Sub

Maintenant, une simple phrase peut résoudre le problème aussi, du style,

'une modification des formules peut générér un bouleversement dans le résultat attendu!!!'

'une simple modif peut provoquer une vague d'incohérences incontrôlables'

'attention les mecs, si vous touchez à mes formules, vos données seront perdues'

' hé les boys!!! arrêtez de déconner avec les formules'


et un peu plus sophistiqué, avec une voix off, (genre voix de velours!!)

'messieurs, si vous continuez à tripoter mes formules, votre mémoire va s'affaiblir, lentement votre pc va passer en veille et vous perdrez tout contrôle, la destruction de toutes vos données va bientôt commencer........

10

9

8

7

6

5

4

3

2

1

0

vous venez de tout perdre, il ne vous reste plus qu'à vous connecter sur...............................................................................................................



X L D!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!




B) Celeda B)
 
R

rudaye

Guest
faut il que supprime ce qu'il y a en gras?

Range('D19').Select
ActiveCell.FormulaR1C1 = _
'=SUMPRODUCT((ColUMai=7)*(ColGetMai=''NORM'')*((ColCreationMai=''ý'')+(ColRefonteMai=''ý ''))*(ColPanneMai=''o''))'
Range('D19').Select


merci
 

Ti_

Nous a quitté
Repose en paix
Attention toutefois, dans une feuille Excel, chaque fois qu'on peut utiliser des formules, il faut le faire, parce que ça va incomparablement plus vite que des fonctions VBA.
Donc si tes collègues sont du genre maladroits mais pas méchants, je te conseillerai plutôt de protéger simplement ta feuille, éventuellement avec un mot de passe, mais de garder toutes tes formules telles quelles, pour toi ce sera bien plus simple et plus sûr.

Maintenant si tu évolues dans un bocal de requins, certes, ça change tout.
 

Discussions similaires

Réponses
6
Affichages
363

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel