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 :

PAGE SUR EXCEL


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Points : 48
    Points
    48
    Par défaut PAGE SUR EXCEL
    J'ai fait sur excel un classeur interactif.
    Sur la feuille 1 j'ai fait une page menu avec mes liens hypertextes.
    Comment a l'ouverture de cette feuille cacher les barres d'outils mais que ses barres restent présentent sur les 5 autres feuilles du classeur.
    merci.

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Salut mavean,

    Voici une procedure qui fonctionne !

    Il cahe les barres d'outils à chaque activation de la feuil2
    Pour cela il faut placer un appel de ce code dans l'évènement Worksheet_Activate() de chaque feuilles de ton classeur.

    Cette procedure est dans un module.

    Code : 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
     
     
    Private Sub Worksheet_Activate()
    Call barres
    End Sub
     
     
    Global config_depart(20) As String 'Pour la mise en mémoire des barres à réafficher
    Global Nbr_barres As Integer
    Global Nom_barres As String
     
    Sub barres()
    'Un menu est considéré comme un contrôle
    If ActiveSheet.Name = "Feuil2" Then
                Nbr_barres = 0
       ' Pour toutes les barres on teste si elles sont affichées
        For Each barre In Application.CommandBars
            If barre.Visible = True Then
                Nom_barres = barre.Name
     
                 If Nom_barres <> "Worksheet Menu Bar" Then
                     Nbr_barres = Nbr_barres + 1
                     Application.CommandBars(Nom_barres).Visible = False
                     config_depart(Nbr_barres - 1) = Nom_barres
                 End If
            End If
        Next barre
        Else
       i = 0
            For i = 0 To Nbr_barres - 1
                Nom_barres = config_depart(i)
                Application.CommandBars(Nom_barres).Visible = True
            Next i
     
        End If
    End Sub
    J'éspère que cela te convient.
    @+

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Sympa, ce code. Je n'avais jamais pensé à faire un truc comme ça, mais c'est vrai que ça peut être joli.
    Cependant, je ne comprend pas pourquoi tu mets l'appel à ta procédure dans le Activate de toutes les feuilles, puisqu'après, tu vérifies que tu es seulement sur la feuille2. Il suffit de le mettre seulement dans les feuilles où tu ne veux plus de menu, et d'enlever le test sur le nomde la feuille dans la procédure "barres".
    Non?
    Enfin, c'est un détail...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Points : 48
    Points
    48
    Par défaut
    re

    a part ecrire des petites macro, je n'ai jamis ecrit de code dans un évenement comment fait tu.

    Encore merci

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Dans ton éditeur VBA (Alt F11 depuis Excel), affiche le code de l'onglet qui t'intéresse (dans l'explorateur de projets, double-click sur le nom de l'onglet). Dans l'ascenseur de gauche, choisis "Worksheet", puis dans l'ascenseur de droite, choisis "Activate": il va te préparer la déclaration dans la quelle tu mets le
    Ensuite, tu crées un module: depuis l'explorateur de projet, click droit, insertion, module. Il t'ouvre une belle feuille blanche. Tu y colles le code de la procédure "barres( )", avec les 3 lignes Global... du dessus.

    Et voilà, c'est prêt (N'oublie pas de changer le nom de la feuille qui est testée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If ActiveSheet.Name = "Feuil2" Then
    Tu remplace "Feuil2" par le nom de ton onglet.
    [/quote]

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Bonjour Megaxel,

    Tu as raison, mais j'ai vite adapté ce code que j'avais placé sur un bouton qui une fois cachait les barres une autrefois les affichait.
    Je n'ai pas pris le temps de "Poffiner" le code.

    @+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Points : 48
    Points
    48
    Par défaut ca marche et autre petite question
    Re
    cela marche impec.
    Je crois qu'avec une aide pareille je vais apprendre trés vite.

    Une autre question : j'ai une macro aide qui donne un message tout simple.

    msgbox " mon message "
    Comment faire pour changer le titre de cette boite et ne pas avoir microsoft excel en titre.
    Merci

  8. #8
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Déjà, tu peux mettre de post à "Résolu" (en cliquant sur le bouton en bas à gauche), et en ouvrir un nouveau avec un beau titre qui correspond.
    Sinon, pour te répondre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Ok As Boolean
    Ok = MsgBox("Texte à afficher.", vbCritical, "Titre de la fenêtre")
    Ca change un petit peu la syntaxe, car il y a un code retour, mais bon...

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello Bouley,
    Je n'ai pas examiné ton code à fond mais n'est-il pas possible de le placer dans
    "Private Sub Workbook_SheetActivate(ByVal Sh As Object)"
    avec test sur le nom de feuille ?

    A+

  10. #10
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Hello, Ouskel'n'or, Dodo des dodos!
    Plus qu'un message et tu casses la barre mythique des 1000 !!!!!!
    Incroyable!

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello, Megaxel,
    Attends que le "Grand nettoyeur" passe par là et supprime toutes mes réponses à tes remarques... Là, il ne me restera plus que mes yeux pour pleurer...
    Ceci dit, je pense que j'ai été oublié...

    A+ ... et cours toujours !

  12. #12
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Hello ouskel'n'or

    Tout a fais !!!

    @+

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Merci Bouley, alors je vais pouvoir pomper ton code sans me poser de question...

    A+

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Bien que tu ais mis Résolu, voilà une méthode simple
    Code : 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
     
    Private Sub Workbook_Open()
    Sheets(2).Activate
    End Sub
     
    Dans un module
     
    Sub Restorer()
    Application.CommandBars(1).Enabled = True
    Application.CommandBars("Standard").Enabled = True
        Application.CommandBars("Formatting").Visible = True
        Application.DisplayFormulaBar = True
    End Sub
     
    Sub CacherBarre()
    Application.CommandBars(1).Enabled = False
    Application.CommandBars("Standard").Enabled = False
        Application.CommandBars("Formatting").Visible = False
        Application.DisplayFormulaBar = False
    End Sub
     
    Dans la Feuil1
     
    Private Sub Worksheet_Activate()
    Call CacherBarre
    End Sub
    Private Sub Worksheet_Deactivate()
    Call Restorer
    End Sub
    jpleroisse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire des mises en page différentes sur Excel
    Par mushu59 dans le forum Excel
    Réponses: 3
    Dernier message: 08/07/2011, 18h49
  2. Enregistrer une page HTML sur Excel
    Par Pedro87 dans le forum Langage
    Réponses: 30
    Dernier message: 04/09/2009, 15h53
  3. comment enlever "une mise en page" sur excel ?
    Par benj91 dans le forum Excel
    Réponses: 4
    Dernier message: 12/09/2008, 19h04
  4. Mise en page sur excel
    Par Olivier0 dans le forum Excel
    Réponses: 2
    Dernier message: 13/08/2007, 15h11
  5. Réponses: 2
    Dernier message: 03/10/2002, 18h24

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