VBA: Masquer les onglets d'un classeur excel

dadynetty Messages postés 2 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 28 janvier 2010 - 27 janv. 2010 à 22:23
 scribetout - 5 mars 2013 à 11:45
Bonjour,

Voilà, j'ai créé un classeur contenant de nombreuses applications (Chaque onglet est une application à part entière). Dans la feuille menu j'ai créer des liens hypertext permettant de selectionner une application (onglet).
Je souhaite que seule la feuille menu soit visible et que l'on puisse se rendre d'une feuille à l'autre à partir du Menu.
De plus, une fois l'onglet fermé, seul l'onglet Menu doit être visible.
je vosu remercie d'avance.
L.E.

10 réponses

c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
28 janv. 2010 à 00:52
Bonjour
Pour masquer un onglet :
Sheets("Base").Visible = False
pour le rendre visible :
Sheets("Base").Visible = true

Bonne journée
0
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
28 janv. 2010 à 10:18
Voila comment je vois ça...

Dans ton menu :
Affecte des macros sur chaque lien et et tape cette macro :

Private Sub Nom_du_lien()
On error GoTo Err
Sheets("Nom_de_la_feuille").Visible = True 'Attention Max 33 Caractères
Err:
MsgBox "Feuille déja ouverte", vbCritical
End Sub


Et dans ta feuille insére un lien "fermer", ou tu affecteras la macro suivante :

Private Sub Fermer_Nom_du_lien()
Sheets("Nom_de_la_feuille").Visible = False
Sheets("Menu").Select
End Sub


Voila
------------
Même joueur joue encore
0
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
28 janv. 2010 à 10:26
Salut,
Sinon tu peux masquer seulement les onglets :
With ActiveWindow
.DisplayWorkbookTabs = False
End With
Comme ça tu n'utilises que le select pour changer de page.

Nanardino64
Développons-nous, développeurs.
0
dadynetty Messages postés 2 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 28 janvier 2010
28 janv. 2010 à 18:27
nanardino64
je te remercie bcp.
Juste une autre question sur une des feuilles(Applications) j'ai des textBox et un bouton "calculer" qui permet d'afficher le résultat de mon calcul dans un autre textbox (Résultat).
Le probleme est que j'ai un message d'erreur sur la différence entre dates.

Dim SirsFD1, SirsFD2 As Date, FxJ As Double
SirsFD1 = FixLegDate1.Value 'date dans le textbox1 au format dd/mm/aaaa
SirsFD2 = FixLegDate2.Value ' 'date dans le textbox2 au format dd/mm/aaaa
FixDays.Value = (SirsFD2 - SirsFD1)
' Le textbox "Fixday" doit afficher le résultat de la 'différence entre les dates du textbox1 et le Textbox2
End if


Message: "incompatibilité type"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
1 févr. 2010 à 07:41
Tu peut pas soustraire des pommes avec des poires....

Je crois avoir vu un snipet la dessus... Je vais chercher un peu

------------
Même joueur joue encore
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 févr. 2010 à 14:19
Salut,

pas mal d'erreur dans ce code!

- ta façon de declarer tes variables n'est pas bonne:
Dim SirsFD1, SirsFD2 As Date
ici seul SirsFD2 est de type date SirsFD1 est de type Variant

- une textbox comme sont nom l'indique contient du texte donc on ne peu travailler avec les dates comme tu le fais!

Dim SirsFD1 As Date, SirsFD2 As Date, FxJ As Double
if isDate(FixLegDate1.Value) then
   ' datevalue permet de transformer une chaine en date
   SirsFD1 = datevalue(FixLegDate1.Value) 'date dans le textbox1 au format dd/mm/aaaa
Else
   msgbox "'FixLegDate1' ne contient pas de date !", VbExclamation
End If
If isDate(FixLegDate2.Value) then
   SirsFD2 = datevalue(FixLegDate2.Value) 'date dans le textbox2 au format dd/mm/aaaa
   exit sub
Else
   msgbox "'FixLegDate2' ne contient pas de date !", VbExclamation
   Exit sub
End If
' datediff calcule une difference entre 2 dates et renvoie soit un nombre de jour("d") soit un nombre de mois("m") soit un nombre d'année("y")
' ici il renvoie un nombre de jour positif ou négatif 
FixDays.Value = DateDiff("d", SirsFD2, SirsFD1)
' Le textbox "Fixday" doit afficher le résultat de la 'différence entre les dates du textbox1 et le Textbox2
End if


A+
0
Bonjour,

je suis dans la même galère que Daddynetty, j'ai ceci, sauf que la feuille "Menu" doit être la dernière du classeur (complètement à droite) sinon celles d'après restent visibles et je ne sais pas pourquoi. dès que j'aurais une réponse, je la communiquerai.
Sub Masquer_feuilles()
Dim F As Integer
    Application.ScreenUpdating = False
    For F = 1 To Worksheets.Count
        If Sheets(F).Name <> "Menu" Then
        Sheets("Menu").Activate
        Sheets(F).Visible = False
    End If
    Next F
    Application.ScreenUpdating = True

End Sub


Par contre j'ai une question par rapport à ce code de nanardino64
With ActiveWindow
.DisplayWorkbookTabs = False
End With 

Où doit-on le mettre ce code, car c'est ce que je cherche.

merci.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2013 à 17:57
Tu as également dans la barre d'outil présente lorsque tu as ton userform affiché, un onglet affichage, dont l'utilisation de permet de choisir d'afficher l'objet (le userform) ou le code


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2013 à 17:59
Et zut (le me suis trompé de discussion !) Prière d'ignorer lmon message précédent


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonjour,

Je te signale que je suis débutant, je cherché à faire comme toi: masquer tous les onglets et ne laisser qu'un seul visible.
Solution sur ce fil --> Tapez le texte de l'url ici.

Cordialement,
Scribetout
0
Rejoignez-nous