• Initiateur de la discussion Initiateur de la discussion Anynoor
  • Date de début Date de début

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 !

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😀M5000").FormulaHidden = True
ActiveSheet.Protect
End Sub

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

End Sub


Merci beaucoup

A+

Anynoor
 
Bonjour,

il faut essayer avec

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


idem avec false

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

@+
Nanard
 
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
 
Bonjour Anynoor, Bonjour Nanard,

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


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


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


Voilà.

A+

José
 
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
 
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
 
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 ?
 
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
 
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é
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour