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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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!
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é.
<anonymous@discussions.microsoft.com> a écrit dans le message news:
038601c4ea6f$6e7ef520$a501280a@phx.gbl...
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.
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.