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 :

ListBox sur double click onglet (renommer) [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 312
    Points : 144
    Points
    144
    Par défaut ListBox sur double click onglet (renommer)
    Bonjour,

    Je voudrais sur double click d'un onglet déclencher une boite dialogue proposant une liste correspondant à des mois et lui affecter la valeur choisie.

    Dans la gestion des événements feuilles, je n'ai pas trouver mon bonheur.

    où existe-t-il un moyen détourné pour déclencher cette macro?
    Et là je n'ai pas la logique.

    Merci de votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Une autre voie consiste à utiliser un menu contextuel obtenu avec un clic droit sur l'onglet (Tab).
    Si c'est bien cela qu'il fallait comprendre, essayez la démarche ci-après :
    1) Copiez le code suivant dans un module Standard
    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
    Const MENU_CONTEXT_CAPTION As String = "Choisir un mois..."
     
    Dim Mois As Variant   'portée Module
     
    Sub MenuContextuel(Optional dummy As Byte)
    Dim BAR As CommandBar
    Dim C As CommandBarControl
    Dim CB As CommandBarComboBox
    Dim i&
    '---
    Mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
    Call DeleteMenuContextuel
    Set BAR = Application.CommandBars("Ply")
    Set C = BAR.Controls.Add(Type:=msoControlPopup, Before:=1, Temporary:=True)
    With C
      .Caption = MENU_CONTEXT_CAPTION
      .Tag = "My_Cell_Control_Tag"
      For i& = LBound(Mois) To UBound(Mois)
        With .Controls.Add(Type:=msoControlButton)
          .Caption = Mois(i&)
          .OnAction = "'NomFeuille " & i& & "'"
        End With
      Next i&
    End With
    BAR.Controls(2).BeginGroup = True
    End Sub
     
    Sub DeleteMenuContextuel(Optional dummy As Byte)
    On Error Resume Next
    Application.CommandBars("Ply").Controls(MENU_CONTEXT_CAPTION).Delete
    End Sub
     
    Sub NomFeuille(Index As Integer)
    Dim S As Worksheet
    Dim A$
    Dim i&
    A$ = Mois(Index)
    If ActiveSheet.Name = A$ Then Exit Sub
    On Error Resume Next
    Set S = ThisWorkbook.Sheets(A$)
    If Err = 0 Then
      Do
        Err.Clear
        i& = i& + 1
        A$ = Mois(Index) & Format(i&, "00")
        Set S = ThisWorkbook.Sheets(A$)
      Loop Until Err <> 0
    End If
    Err.Clear
    ActiveSheet.Name = A$
    End Sub
    2) Copiez le code suivant dans la fenêtre de code de ThisWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
    Call MenuContextuel
    End Sub
     
    Private Sub Workbook_Activate()
    Call MenuContextuel
    End Sub
     
    Private Sub Workbook_Deactivate()
    Call DeleteMenuContextuel
    End Sub
    Lancer la procédure Workbook_Activate (ce sera automatique par la suite). En cliquant droit sur un onglet apparaîtra le menu contextuel habituel avec
    un nouvel item déroulant ("Choisir un mois..."). Après avoir cliqué sur un mois, la feuille active en sera renommée (Toujours si c'est bien cela qu'il fallait comprendre).

  3. #3
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour PM02017

    juste pour dire pour cette procédure de renommage d'onglets qui mérite largement

    Pascal

  4. #4
    Membre habitué
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 312
    Points : 144
    Points
    144
    Par défaut
    bonjour PM02017,

    Effectivement le menu contextuel est un super paliatif.

    J'ai entre-temps effectuer ma réflexion sur une liste d"roulante dans une cellule.

    Mai je cours de ce pas à ta solution ou la combinaison des 2

    Mais in faut pas que j'oublie d'affecter la value du nom du fichier à la liste déroulante.

    Un grand Grand GRand GRANd GRAND merci!!!!

    Résolu exponentiel 10000000000000000000000000000000000000

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

Discussions similaires

  1. [AC-2003] ouvrir une ligne spécifique d'un formulaire sur double click
    Par louismaz dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2010, 08h54
  2. Ouvrir un form sur double-click, suite
    Par Nessie37 dans le forum IHM
    Réponses: 23
    Dernier message: 08/10/2008, 17h56
  3. [2.3] Action sur double-click sur une série
    Par Robiwan59 dans le forum BIRT
    Réponses: 1
    Dernier message: 19/08/2008, 11h43
  4. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  5. Question sur double click
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 30/04/2005, 11h53

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