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 :

Utilisation de Cancel = True - optimisation code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut Utilisation de Cancel = True - optimisation code
    Bonjour,

    Le recours à 2 reprises à Cancel = True dans cette procédure me semble inapproprié. Un seul devrait suffire mais je ne vois pas où le placer :

    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
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim rép As Byte
     
        If Target.Count > 1 Then Exit Sub
     
        If Target.Row > 5 And Target.Row < 27 And Target.Column > 2 And Target.Column < 369 Then 
     
            If Target.Value <> 0 Then
                rép = MsgBox("Voulez-vous effacer la saisie ?", Buttons:=vbYesNo + vbDefaultButton2 + vbQuestion)
                If rép = vbNo Then
                    Cancel = True
                    Exit Sub
                Else
                    Target.ClearContents
                    Cancel = True
                End If
            End If
        End If
    End Sub
    En vous remerciant par avance pour vos lumières (j'imagine par ailleurs que ce code peut largement être simplifié...),
    Cordialement,
    jp

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    Citation Envoyé par jpma75 Voir le message
    Le recours à 2 reprises à Cancel = True dans cette procédure me semble inapproprié. Un seul devrait suffire mais je ne vois pas où le placer
    Comme tu l'utilises quelle que soit la réponse à ta question, il te suffit de le remonter avant le dialogue.

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Sinon ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        If Target.Count > 1 Or Target.Value = 0 Then Exit Sub
        If Not Intersect(Target, Range(Cells(6, 3), Cells(26, 368))) Is Nothing Then
            Cancel = True
            If MsgBox("Voulez-vous effacer la saisie ?", Buttons:=vbYesNo + vbDefaultButton2 + vbQuestion) = vbNo Then Exit Sub
            Target.ClearContents
        End If
    End Sub
    Cdlt

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Bonjour,

    L'optimisation du code est quelque chose qui me fait rêver...

    Cette dernière proposition va au delà de mes espérances.

    Merci beaucoup,
    Cordialement,
    jp

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

Discussions similaires

  1. Utilisation d'un lecteur de codes à barres
    Par banto_maxime dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 10h18
  2. Réponses: 4
    Dernier message: 10/04/2006, 14h23
  3. Réponses: 1
    Dernier message: 04/04/2006, 15h27
  4. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 16h37
  5. utilisation d'un lecteur de code barre sous delphi
    Par bm10 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 19/11/2005, 20h05

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