IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Masquer les onglets sauf onglet Accueil


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut Masquer les onglets sauf onglet Accueil
    Bonsoir à tous,

    J'ai un fichier Excel avec plusieurs onglets dont un onglet "Accueil" à partir duquel je peux accéder à plusieurs fonctionnalités en appuyant sur des boutons.
    Parmi ces onglets, j'en ai deux qui s'ouvrent après avoir appuyé sur un bouton dans mon onglet Accueil. Ces onglets disparaissent dès lors que je clic sur un autre onglet/bouton.
    Après réflexion, cette solution ne me semble pas la plus adaptée, car cela oblige les utilisateurs à ouvrir de nouveau l'onglet à chaque fois (= perte de temps).

    Je souhaiterai donc que seul l'onglet accueil soit visible à l'ouverture du fichier. Que les utilisateurs puissent ouvrir les onglets qu'ils souhaitent en appuyant sur les boutons de l'onglet accueil et qu'à la fermeture du fichiers toutes les données saisies soient enregistrées et que les onglets se ferment, excepté l'onglet accueil. Ainsi, à la prochaine ouverture du fichier, seul l'onglet accueil sera de nouveau visible.

    J'ai trouvé plusieurs codes sur Internet mais aucun ne fonctionne chez moi.
    Pour info, j'utilise Excel pour MAC.
    Etant débutante sur Excel, c'est possible que je m'y prenne mal et que je ne place pas la code au bon endroit...


    Pourriez-vous m'aider?

    Merci d'avance,

    Manon

  2. #2
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Manon,
    Si j'ai bien compris ton souhait tu dois donc cacher tes onglets à la fin de code et puis les ouvrir / cacher en cours de macro.
    Je suppose que tu as défini tes onglets comme ceci par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim data1 As Worksheet
    Set data1 = ThisWorkbook.Sheets("Data1")
    Dim data2 As Worksheet
    Set data2 = ThisWorkbook.Sheets("Data2")
    Ensuite sous conditions tu les rends visibles comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ta_condition then
    Data1.Visible=True
    Data2.Visible=True
    End if
    Tu peux les cacher en cours d'utilisation de la macro toujours sous conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ta_condition then
    Data1.Visible=False
    Data2.Visible=False
    End if
    ou alors juste avant la fin de ta macro, tu les caches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data1.Visible = False
    data2.Visible = False
     
    End Sub
    Est-ce que cela repond à ta demande?

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Si tous les onglets sauf accueil sont masquer quand tu sauvegardes ton fichier, il te sufis de faire glisser la barre défilement sur la gauche pour masquer la sélection des onglets!

    Il doit même y avoir un option dans Excel qui le permet ce serait mieux!

  4. #4
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Bonjour,

    Merci pour ta réponse Eric mais tout cela est déjà bien trop compliqué pour mon niveau, j'ai essayé d'insérer les codes mais ça ne fonctionne pas.

    Ce que je souhaite c'est pouvoir ouvrir plusieurs onglets lors de l'utilisation de mon fichier et qu'à la prochaine ouverture du fichier (par un autre utilisateur par exemple) seul l'onglet Accueil apparaisse, donc que les autres onglets ouverts lors de la précédente utilisation ne soit plus visibles et le soient à nouveau que si l'utilisateur clique sur le bouton correspondant dans l'onglet accueil.

    J'espère avoir été un peu plus claire,

    Bonne journée,

    Manon

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    Citation Envoyé par manoncg Voir le message
    tout cela est déjà bien trop compliqué pour mon niveau
    Dans ce cas, tu mets ce code dans ThisWorkbook et toutes les feuilles autres que "Accueil" seront masquées à l'ouverture.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_Open()
    Dim feu As Worksheet
    For Each feu In ThisWorkbook.Sheets
        If feu.Name <> "Accueil" Then feu.Visible = xlSheetHidden
    Next feu
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par manoncg Voir le message
    qu'à la prochaine ouverture du fichier (par un autre utilisateur par exemple) seul l'onglet Accueil apparaisse
    A voir le tuto sur les evenement:http://silkyroad.developpez.com/VBA/EvenementsClasseur/
    En particulier le before_close.
    Tu fais une boucle sur tes feuilles et si ce n'est pas ta feuille d'acceuil alors tu la cache.

    Edit: trop lent.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code module ThisWorkbook : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    Private Sub Workbook_AddinInstall()
    IsAccueil
    End Sub
    Private Sub Workbook_AddinUninstall()
    IsAccueil
    End Sub
    Private Sub Workbook_AfterXmlExport(ByVal Map As XmlMap, ByVal Url As String, ByVal Result As XlXmlExportResult)
    IsAccueil
    End Sub
    Private Sub Workbook_AfterXmlImport(ByVal Map As XmlMap, ByVal IsRefresh As Boolean, ByVal Result As XlXmlImportResult)
    IsAccueil
    End Sub
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_BeforeXmlImport(ByVal Map As XmlMap, ByVal Url As String, ByVal IsRefresh As Boolean, Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_Deactivate()
    IsAccueil
    End Sub
    Private Sub Workbook_NewSheet(ByVal Sh As Object)
    IsAccueil
    End Sub
    Private Sub Workbook_Open()
    IsAccueil
    End Sub
    Private Sub Workbook_PivotTableCloseConnection(ByVal Target As PivotTable)
    IsAccueil
    End Sub
    Private Sub Workbook_PivotTableOpenConnection(ByVal Target As PivotTable)
    If ActiveWindow.TabRatio > 0 Then Sheets(1).Select
    End Sub
    Private Sub Workbook_RowsetComplete(ByVal Description As String, ByVal Sheet As String, ByVal Success As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    IsAccueil
    End Sub
    Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    IsAccueil
    End Sub
     
     
     
     
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    IsAccueil
    End Sub
    Private Sub Workbook_Sync(ByVal SyncEventType As Office.MsoSyncEventType)
    IsAccueil
    End Sub
    Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    IsAccueil
    End Sub
    Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    IsAccueil
    End Sub
    Private Sub Workbook_WindowResize(ByVal Wn As Window)
    IsAccueil
    End Sub
    Sub IsAccueil()
    If ActiveWindow.TabRatio > 0 Then Sheets("Accueil").Select
    ActiveWindow.TabRatio = 0
    End Sub
    Dernière modification par Invité ; 25/11/2016 à 10h14.

  8. #8
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Merci à tous pour votre aide...

    Anasecu et dysorthographie, j'ai testé les codes mais ça ne fonctionne pas.

    Anasecu, voilà ce qui apparaît lorsque j'entre ton code dans Workbook (cf. PJ)

    De plus, petite rectification, j'aimerai que mon onglet accueil ET guide d'utilisation soient visibles lors de l'ouverture. C'est possible ?

    Merci d'avance
    Images attachées Images attachées  

  9. #9
    Invité
    Invité(e)
    Par défaut
    tu ajoutes un bouton guide d'utilisation
    Fichiers attachés Fichiers attachés

  10. #10
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Le code d'Anasecu marche bien chez moi, tu peux essayer de remplacer feu.Visible = xlSheetHidden par feu.Visible = false

    De plus, petite rectification, j'aimerai que mon onglet accueil ET guide d'utilisation soient visibles lors de l'ouverture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If not(feu.Name = "Accueil" or feu.name="guide d'utilisation") then

  11. #11
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Le fichier que tu m'as envoyé dysorthographie ne fonctionne pas chez moi
    Et avec la modif du code de Anasecu non plus...

    J'utilise Excel pour Mac peut-être que le problème vient de là...

  12. #12
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Allume l'enregistreur de macro, cache un onglet, éteint l'enregistreur, et donne le code ainsi obtenu.

  13. #13
    Invité
    Invité(e)
    Par défaut
    je suis nul en Mac mais je pense que c'est la bonne vois voir si un pro!

    perpètre le forma de fichier test celui ci!
    Fichiers attachés Fichiers attachés

  14. #14
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Par défaut
    Ca ne fonctionne toujours pas Dysorthographie mais merci pour votre aide !

    Merci aux autres aussi

Discussions similaires

  1. [Toutes versions] Afficher/Masquer les onglets des documents
    Par Gado2600 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/09/2019, 17h19
  2. Réponses: 6
    Dernier message: 12/06/2015, 15h10
  3. [XL-2003] Masquer les Onglets Excel
    Par bibi28 dans le forum Excel
    Réponses: 3
    Dernier message: 14/12/2012, 19h28
  4. [XL-2003] supprimer tous les onglets sauf
    Par toutletoutim dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/04/2010, 07h33
  5. [VBA Excel] supprimer tous les onglets sauf un
    Par drinkmilk dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/11/2005, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo