Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MsgBox + masquer onglets

2 réponses
Avatar
Bonjour,

j'ai cr=E9=E9 une boite de dialogue qui appara=EEt =E0=20
l'ouverture d'un document Excel.

voici le code:

Sub Test()
Result =3D MsgBox("Cliquez sur Oui pour acc=E9der au fichier=20
ou sur non pour quitter l'application",=20
vbYesNo, "ATTENTION")
End Sub

j'aimerais maintenant que quand on clic sur Oui, le=20
document s'ouvre et quand on clique sur Non, Excel se=20
ferme. Comment faire?

Au passage j'aimerais aussi savoir si on peut masquer=20
certains onglets (sans faire Outils>Options>Onglets=20
classeurs). Par exemple j'ai Feuil1, Feuil2 et Feuil3 et=20
j'aimerais masquer (et pas supprimer) Feuil2 et Feuil3,=20
mais garder Feuil1.

Merci d'avance et joyeux No=EBl!

2 réponses

Avatar
John-Pet
Pour rendre invisible les feuilles souhaitées

il faut ecrire dans le code
Sheets("feuil2").Visible = xlVeryHidden

celle çi sera invisible et aussi invisible dans format>feuille>afficher
pour la rendre par la suite visible pour une utilisation ulterieure il
faudras ecrire dans le code
Sheets(feuil2).Visible = True

voilà pour la deuxieme partie de ton message

JP
Avatar
Hervé
Bonjour et bonnes fêtes à toutes et tous,

Amettre dans le module du classeur :

Private Sub Workbook_Open()
If MsgBox("Cliquez sur 'Oui' pour accéder " & _
"au fichier ou sur 'Non' pour " & _
"quitter l'application", _
vbYesNo, _
"ATTENTION") = vbNo Then
Application.Quit
End If
End Sub

Pour cacher une ou plusieurs feuilles (ou les afficher), il y a une
multitude de façons, la 1ère qui suit ne fonctionne que pour cacher une ou
plusieurs feuilles tandis que la 2ème cache ou affiche la ou les feuilles :

Sub Cacher()
Dim Tbl
Tbl = Array("Feuil2", "Feuil3")
Worksheets(Tbl).Visible = False
Erase Tbl
End Sub

Sub CacherMontrer()
Dim Fe As Worksheet
For Each Fe In Worksheets
If Fe.Name <> "Feuil1" Then Fe.Visible = False
Next Fe
Set Fe = Nothing
End Sub

Tu peux même te faire un ComboBox contenant le nom de toutes tes feuilles
(graphiques et calculs) pour les afficher ou les cacher selon tes besoins,
exemple :
A mettre, pour tester, dans un module standard, après avoir exécuté la proc
"Feuilles", tu aura dans la barre principale un ComboBox avec le nom de
toutes les feuilles contenues dans le classeur. Tu peux ensuite appeler
cette Proc à l'ouverture du classeur ou/et à l'ajout d'une nouvelle feuille
(Workbook_NewSheet) malheureusement, il n'y a pas d'évennement sur le
renommage d'une feuille ou la suppression afin que le combo soit toujours à
jour :o(( Il est possible, avec un module de classe, de gérer ceci sur
"SheetActivate".
Pour supprimer après test ton combo, mets un point d'arrêt (indiqué) et
exécute la proc.

Sub Feuilles()
Dim Cmb As CommandBarComboBox
Dim I As Integer
'supprime le menu pour pouvoir le re-créer
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar") _
.Controls("Feuilles").Delete

Set Cmb = Application.CommandBars("worksheet Menu Bar") _
.Controls.Add(msoControlComboBox) ' Point d'arrêt
With Cmb
.Caption = "Feuilles"
.BeginGroup = True
.Width = 150
.OnAction = "AfficherCacher"
.TooltipText = "Afficher ou cacher une feuille !"
For I = 1 To Sheets.Count
.AddItem Sheets(I).Name
Next I
End With
Set Cmb = Nothing
End Sub

Sub AfficherCacher()
With CommandBars.ActionControl
Sheets(.List(.ListIndex)).Visible = Not _
Sheets(.List(.ListIndex)).Visible
End With
End Sub

Hervé.

a écrit dans le message news:
038601c4ea6f$6e7ef520$
Bonjour,

j'ai créé une boite de dialogue qui apparaît à
l'ouverture d'un document Excel.

voici le code:

Sub Test()
Result = MsgBox("Cliquez sur Oui pour accéder au fichier
ou sur non pour quitter l'application",
vbYesNo, "ATTENTION")
End Sub

j'aimerais maintenant que quand on clic sur Oui, le
document s'ouvre et quand on clique sur Non, Excel se
ferme. Comment faire?

Au passage j'aimerais aussi savoir si on peut masquer
certains onglets (sans faire Outils>Options>Onglets
classeurs). Par exemple j'ai Feuil1, Feuil2 et Feuil3 et
j'aimerais masquer (et pas supprimer) Feuil2 et Feuil3,
mais garder Feuil1.

Merci d'avance et joyeux Noël!