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 :

Macro complémentaire Onglets. [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut Macro complémentaire Onglets.
    Bonjour le forum,
    J'ai une macro complémentaire Onglets.
    Impossible de me souvenir son utilité!!!
    Merci d'avance pour vos réponses.
    Bonne fin de WE
    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Recherche ton classeur de macro complémentaire .xlam ou .xla (probablement dans "C:\Users\...\AppData\Roaming\Microsoft\AddIns") puis ouvre-le et regarde ce que fait le code !

    Hervé.

  3. #3
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Bonjour Hervé,
    J'ai trouvé ça:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    'Macro a intaller dans le repertoire XLStart d'Excel
     
    Option Explicit
     
    Public MyNewBar As New ComboBoxSheets
    Public MyBar As CommandBarComboBox
     
    Sub ComboOnglets(Optional a As Boolean)
     
    Dim i As Integer
     
    On Error Resume Next
      Application.CommandBars("standard"). _
                  Controls("Onglets").Delete
     
    Set MyBar = Application.CommandBars("standard"). _
        Controls.Add(msoControlComboBox)
            With MyBar
                .Caption = "Onglets"
            For i = 1 To Worksheets.Count
            If Sheets(i).Visible = True Then
                .AddItem Sheets(i).Name
            End If
            Next i
                .DropDownLines = 50
                .DropDownWidth = -1
                .ListHeaderCount = 0
                .Text = ActiveSheet.Name
                .Width = 100
            End With
        MyNewBar.SynchroBox MyBar
        MyBar.Visible = True
    End Sub
     
    Sub SupComboOnglets(Optional a As Boolean)
      On Error Resume Next
      Application.CommandBars("standard"). _
                  Controls("Onglets").Delete
    End Sub
     
     
    Sub ComboOnglets2(Optional a As Boolean)
     
    Dim i As Integer
     
    Set MyBar = Application.CommandBars("standard"). _
        Controls("Onglets")
    With MyBar
        .Clear
    For i = 1 To Worksheets.Count
    If Sheets(i).Visible = True Then
        .AddItem Sheets(i).Name
    End If
    Next i
        .Text = ActiveSheet.Name
    End With
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Je t'ai commenté le code mais tu n'as pas posté le code du module de classe "ComboBoxSheets". Voici le code :
    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
    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
     
    Public MyNewBar As New ComboBoxSheets
    Public MyBar As CommandBarComboBox
     
    Sub ComboOnglets(Optional a As Boolean)
     
    Dim i As Integer
     
    'détruit le ComboBox de la barre de commande "Standard" si il existe, d'où le gestionnaire (on error resume next)
    On Error Resume Next
      Application.CommandBars("standard").Controls("Onglets").Delete
     
    'crée le ComboBox dans la barre de commande
    Set MyBar = Application.CommandBars("standard").Controls.Add(msoControlComboBox)
     
            With MyBar
                'lui donne comme titre "Onglets"
                .Caption = "Onglets"
     
                'ajoute au ComboBox le nom des différentes feuilles si elles sont visibles
                For i = 1 To Worksheets.Count
     
                    If Sheets(i).Visible = True Then
     
                        .AddItem Sheets(i).Name
     
                    End If
     
                Next i
     
                'défini quelques propriétés du ComboBox
                .DropDownLines = 50
                .DropDownWidth = -1
                .ListHeaderCount = 0
                .Text = ActiveSheet.Name
                .Width = 100
     
            End With
     
        'je pense qu'il y a appel du module de classe "ComboBoxSheets"
        MyNewBar.SynchroBox MyBar
        MyBar.Visible = True
     
    End Sub
     
    Sub SupComboOnglets(Optional a As Boolean)
     
        'supprime le bouton "Onglets" de la barre "Standard"
        On Error Resume Next
        Application.CommandBars("standard").Controls("Onglets").Delete
     
    End Sub
     
    'un autre remplissage du ComboBox sans le détruire au paravant ?
    Sub ComboOnglets2(Optional a As Boolean)
     
        Dim i As Integer
     
        Set MyBar = Application.CommandBars("standard").Controls("Onglets")
     
        With MyBar
     
            .Clear
     
            For i = 1 To Worksheets.Count
     
                If Sheets(i).Visible = True Then
                    .AddItem Sheets(i).Name
                End If
     
            Next i
     
            .Text = ActiveSheet.Name
     
        End With
     
    End Sub
    Hervé.

  5. #5
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Re-bonsoir Hervé,

    Exact voici le code demandé.
    Un grand merci.
    Bonne fin de WE
    Bien cordialement

    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
    Private WithEvents ComboBoxSheets As Office.CommandBarComboBox
     
    Private Sub Class_Terminate()
        Set ComboBoxSheets = Nothing
    End Sub
     
    Private Sub ComboBoxSheets_Change(ByVal Ctrl As Office.CommandBarComboBox)
        Dim Onglet As String
        Onglet = Ctrl.Text
        Sheets(Onglet).Select
    End Sub
     
    Sub SynchroBox(box As CommandBarComboBox)
        Set ComboBoxSheets = box
    End Sub

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si la question est toujours de savoir à quoi ça sert : créer une combobox sur le ruban pour choisir une feuille et l'activer

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

Discussions similaires

  1. [Macro]complémentaire excel 2007
    Par jawed dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2007, 13h57
  2. Macro complémentaire récalcitrante (encore !)
    Par aA189 dans le forum Général VBA
    Réponses: 12
    Dernier message: 12/05/2007, 23h46
  3. [VBA-E] macros complémentaires .xla et .xlt
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 08/05/2007, 16h04
  4. [VBA-E]-Appeler une macro complémentaire ?
    Par Régolo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/04/2007, 23h34
  5. [VBA-E] Utilisation macros complémentaire xla
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/04/2007, 16h15

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