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

IHM Discussion :

Autorisation ou non d'un menu contextuel


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Par défaut Autorisation ou non d'un menu contextuel
    Bonjour, j'ai un menu contextuel qui me permet de copier, coller et annuler.

    Le problème est que parfois les champs du formulaire sont vérouillés et si on veut coller alors une erreur se produit et la bdd se ferme.
    Je voudrais savoir si on peut griser (rendre l'action impossible) le coller et le annuler lorsque les champs du formulaire sont vérouillés.

    Ou n'importe quel autre solution pour éviter l'erreur.

    Voici le code si cela peut vous aider :

    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
    Public Sub Form_Load()
     
        'Call ContextuelSimple
        With Me
            .ShortcutMenu = True
            .ShortcutMenuBar = "Mnu_CopierCollerAnnuler"
        End With
    End Sub
    Public Sub ContextuelSimple()
        ' ======================================================================================
        ' Auteur        : Starec - Philippe JOCHMANS - http://starec.developpez.com
        ' Description   : Création d'un menu contrextuel simple
        '=======================================================================================
     
        ' ===== déclaration =====
        Dim cmb As Office.CommandBar
        Dim btn As Office.CommandBarButton
     
        ' ===== suppression de la barre existante =====
        On Error Resume Next
        Application.CommandBars("Mnu_CopierCollerAnnuler").Delete
     
        ' ===== génération du menu contextuel ======
        Set cmb = Application.CommandBars.Add("Mnu_CopierCollerAnnuler", msoBarPopup)
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "copier"
            .Style = msoButtonCaption
            .OnAction = "Macro_Copier"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "coller"
            .Style = msoButtonCaption
            .OnAction = "Macro_Coller"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "annuler"
            .Style = msoButtonCaption
            .OnAction = "Macro_Annuler"
        End With
     
        ' ===== faire apparaitre le menu contextuel =====
     
        cmb.ShowPopup
     
    End Sub
    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Pas de solutions toutes faites mais 2 pistes :

    Quand tu dis :

    on veut coller alors une erreur se produit et la bdd se ferme
    Tu n'as aucun message d'erreur ?

    Et en supprimant ?

    Si tu peux récupérer un numéro d'erreur, tu peux la gérer.

    Ou si tu peux tester l'état de ton contrôle, tu peux agir sur la propriété "enabled" de ton bouton.

    Domi2

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Par défaut
    Oui je peux tester l'état de mon contrôle mais je ne comprend pas ce que vous voulez dire par agir sur la propriété "enable" de mon bouton. Ce n'est pas un bouton c'est un menu quand on fait un clique droit.

    Vous voyez une solution ?

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With btn
        .Caption = "coller"
        .Enabled = False  'True pour l'activer
        .Style = msoButtonCaption
        .OnAction = "Macro_Coller"
    End With
    Maintenant, le problème, c'est de pouvoir faire un test valable. Si tout tes contrôles sont verrouillés ou non verrouillés, c'est plus ou moins simple.

    Plus compliqués s'ils ont des états différents.

    C'est pour ça que la piste de la gestion d'erreur me semblait plus prometteuse...

    Domi2

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Par défaut
    Je préfererais aussi utiliser la gestion d'erreur, dans le message je vois qu'il s'agit de l'erreur 2950. Que faire à partir de ceci ?

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Quelque chose comme ç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
    Sub MaSub()
     
        On Error GoTo GestionErreur
        'Code
        'Code
        Exit Sub
     
    GestionErreur:
     
        Select Case err.Number
     
            Case 2590: MsgBox "Impossible de coller pour l'instant", vbCritical
            Case Else: MsgBox "Erreur inconnue", vbCritical
     
        End Select
     
    End Sub
    Domi2

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/03/2014, 14h49
  2. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  3. [Plugin eUML2] Menu contextuel non modifié
    Par 19oj19 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 16/04/2008, 14h39
  4. Menu contextuel pour une cellule donnée et non l'ensemble
    Par roudy78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2007, 14h44
  5. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

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