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 :

Comment réinitialiser CommandBars("Cell") [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Comment réinitialiser CommandBars("Cell")
    Bonjour à tous,

    Je veux un menu contextuel particulier pour une feuille en particulier.

    Je fais un appel à des procédures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Activate()
         Call Creation_popup 
    End Sub
     
    Private Sub Worksheet_Deactivate()
        Call Suppression_popup
    End Sub
    Le code pour modifier le menu contextuel des cellules est du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Creation_popup
    Set Cbar = CommandBars("Cell")
    Set Cbut = Cbar.Controls.Add(msoControlButton)
    For i = 1 to 3
      With Cbut
        .Caption = "2P"
        .OnAction = "CR" & i 
        .PasteFace 
      End With
    Next i
    End Sub
    Le code pour retirer mes ajouts est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Suppression_popup()
        Dim i As Integer
    
        On Error Resume Next
        For i = 1 To 3
            With Application.CommandBars("Cell")
                .Controls(ICICICICICIC).Delete
            End With
        Next i
        
        On Error GoTo 0
    End Sub
    Premier problème :
    Mais je ne vois pas quel nom donner à mon contrôle (avec quelle propriété) ?

    Second problème :
    L'utilisation de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("cell").Reset
    remet bien le contrôle à zéro sauf que je n'ai plus accès à la hauteur de ligne et la largeur de colonne dans le menu contextuel.



    ESVBA

  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,

    Je ne sais pas si c'est ce que tu cherche mais voilà, j'ai adapter tes proc :
    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
     
    Sub Creation_popup()
     
        Dim Cbar As CommandBar
        Dim Cbut As CommandBarButton
        Dim Tbl
        Dim I As Integer
     
        'tableau pour le FaceID
        Tbl = Array(3, 23, 364)
        Set Cbar = CommandBars("Cell")
     
        For I = 1 To 3
     
            'ici, le bouton est créé 3 fois
            Set Cbut = Cbar.Controls.Add(msoControlButton, Tbl(I - 1))
     
            With Cbut
     
                .Caption = "2P" & I
                .OnAction = "CR" & I
     
            End With
     
        Next I
     
    End Sub
     
    Sub Suppresion_popup()
     
        Dim Cbar As CommandBar
        Dim I As Integer
     
        Set Cbar = CommandBars("Cell")
     
        On Error Resume Next
     
        For I = 1 To 3
     
            With Cbar
     
                .Controls("2P" & I).Delete
     
            End With
        Next I
     
    End Sub
    Hervé.

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut
    J'en conclu :



    Merci. C'est Résolu.

    ESVBA

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

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