Cacher les formules

A

Anynoor

Guest
Bonjour le forum,


Voilà, je débute en VBA donc pas très sûre de moi, j'ai besoin de vos conseils s'il vous plaît.

J'ai 2 macros pour cacher et afficher les formules, ils fonctionnent correctement. J'ai rajouté dans le menu d'excel 2 icônes (2 bonhommes) un pour "afficher" et l'autre pour "cacher".

Jusqu'ici tout va bien, mais je viens de m'apercevoir que ces macros ne peuvent s'appliquer à toutes les fichiers car les noms des feuilles ne se ressemblent pas !

Avez-vous une solution pour mon problème please ?

Voici le code :

Sub cacherformule()
ActiveSheet.Unprotect
Worksheets("Feuil1").Range("A1:DM5000").FormulaHidden = True
ActiveSheet.Protect
End Sub

Sub afficherformule()
ActiveSheet.Unprotect
Worksheets("Feuil1").Range("A1:DM50000").FormulaHidden = False
ActiveSheet.Protect

End Sub


Merci beaucoup

A+

Anynoor
 
N

Nanard

Guest
Bonjour,

il faut essayer avec

Sub cacherformule()
ActiveSheet.Unprotect
Range("A1:DM5000")
Selection.FormulaHidden = True
ActiveSheet.Protect
End Sub


idem avec false

En principe après protection de la feuille les formules sont masquées

@+
Nanard
 
A

Anynoor

Guest
Bonjour Nanard,

Merci de m'avoir répondu.

J'ai changé le code comme tu me l'as indiqué, mais ça ne fonctionne pas.

J'ai un message : "Erreur de compilation : Utilisation incorrecte de la propriété"

"Range" sans "feuil1" devant ne marche pas ! Je ne sais pas quoi faire ....


Si tu as d'autres idées... Merci


A+
Anyn,or
 
J

jmps

Guest
Bonjour Anynoor, Bonjour Nanard,

En reprenant ta formule Anynoor :
Sub cacherformule()
  ActiveSheet.Unprotect
  Activesheet.Range("A1:DM5000").FormulaHidden = True
  ActiveSheet.Protect
End Sub


En reprenant celle de Nanard :
Sub cacherformule()
  ActiveSheet.Unprotect
  Range("A1:DM5000").Select
  Selection.FormulaHidden = True
  ActiveSheet.Protect
End Sub


Mais il y a plus court :
Sub cacherformule()
  With ActiveSheet
    .Unprotect
    .Range("A1:DM5000").FormulaHidden = True
    .Protect
  End With
End Sub


Voilà.

A+

José
 
A

Anynoor

Guest
Bonjour José, rebonjour Nanard,


Super ! c'est cool ! Ca marche ! je suis contente ! :)

Merci beaucoup à tous les deux !

Je vais pouvoir mieux protéger mes formules ! :)

Une petite question, mais c'est juste un détail, chaque fois que je lance ces macros en clicquant des mes "bonhommes" le fichier d'origine s'ouvre, ça ne me gêne pas vraiment, mais est-ce qu'il y a un moyen de l'empêcher de s'ouvrir systématiquement ?

Bisous à tous les deux !

A+

Anynoor
 
N

Nanard

Guest
rebonjour à tous,

bien vu j'avais oublier le .select dans mon empressement avant de reprendre le boulot

je pense qu'il faut affecter le nouveau chemin à tes bonhommes

clic droit affecter une macro....

A voir!

@+

Nanard
 
G

galopin01

Guest
bonsoir,
il y a encore plus court :

Cells.FormulaHidden = False (ou True)

Attention FormulaHidden NE PROTEGE PAS les formules elle les masque.
mais ça n'empêche pas d'écrire dessus, protection ou pas

C'est Selection.Locked = True qui empêche leur modification.
C'est d'ailleurs la raison pour laquelle les cellules sont toujours protégées par défaut.

Personnellement je trouve inutile et gènant de masquer une formule car on ne comprend rien à ce qui se passe quand on veut travailler dessus.
C'est la raison pour laquelle les formules ne sont jamais masquées par défaut.

Application.DisplayStatusBar = False est bien suffisant en général pour masquer et plus facile à utiliser quand tu veux bricoler sur tes feuilles.

Ok ?
 
A

Anynoor

Guest
Bonsoir,

Merci Nanard, José et Galopin d'avoir réfléchi à mon problème.

Mes 2 macros fonctionnent bien maintenant grâce à vous.

Tes remarques sont très pertinentes "Galopin", tu as raison en disant que c'est assez gênant de masquer des formules. Personellement, je ne le fais pas pour mes fichiers de travail, mais seulement aux fichiers destinés à envoyer à certains types de "personnes" qui aiment bien se venter des oeuvres qu'ils n'ont pas réalisés, je ne sais pas si je me fais comprendre...

Bref, en général, j'adore partager mes connaissances comme vous tous ici, mais je me suis fait souvent "exploiter".

Voilà, juste pour t'expliquer pourquoi j'ai besoin d'utiliser ces 2 macros...

Encore merci à vous tous

Passez une bonne soirée

Anynoor
 
H

Hervé

Guest
Bonsoir

juste pour corrigé une erreur :

Galopin01 :


Application.DisplayStatusBar = False, masque la barre d'état qui ne montre pas les formules

Pour ceci il faut maquer la barre de formule:
Application.DisplayFormulaBar = False

Salut
Hervé
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino