web-dev-qa-db-fra.com

Masquer une feuille de calcul Excel avec VBA

J'ai un tableur Excel avec trois feuilles. Une des feuilles contient des formules pour l’une des autres feuilles.

Existe-t-il un moyen programmatique de masquer la feuille contenant ces formules?

33
Lost

Pour masquer l'interface utilisateur, utilisez Format> Feuille> Masquer

Pour masquer par programmation, utilisez la propriété Visible de l'objet Worksheet. Si vous le faites par programme, vous pouvez définir la feuille comme "très masquée", ce qui signifie qu'elle ne peut pas être masquée via l'interface utilisateur.

ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden 
' or xlSheetHidden or xlSheetVisible

Vous pouvez également définir la propriété Visible via le volet de propriétés de la feuille de calcul dans VBA IDE (ALT+F11).

63
Tmdean

Vous pouvez le faire par programme en utilisant une macro VBA. Vous pouvez faire la feuille caché ou très caché:

Sub HideSheet()

    Dim sheet As Worksheet

    Set sheet = ActiveSheet

    ' this hides the sheet but users will be able 
    ' to unhide it using the Excel UI
    sheet.Visible = xlSheetHidden

    ' this hides the sheet so that it can only be made visible using VBA
    sheet.Visible = xlSheetVeryHidden

End Sub
20
Dirk Vollmar

Je voulais juste ajouter un peu plus de détail aux réponses données. Vous pouvez aussi utiliser

sheet.Visible = False

se cacher et

sheet.Visible = True

dévoiler.

Source

18
Charles Wood

Cela peut être fait sur une seule ligne, tant que la feuille de calcul est active:

ActiveSheet.Visible = xlSheetHidden

Cependant, vous ne voudrez peut-être pas faire cela, surtout si vous utilisez des opérations "select" ou si vous utilisez d'autres opérations ActiveSheet.

6
Andrew Scagnelli