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

VBA Discussion :

Détection de l'annulation d'un InputBox


Sujet :

VBA

  1. #1
    Membre habitué Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Points : 148
    Points
    148
    Par défaut Détection de l'annulation d'un InputBox
    Bonjour!
    Une petite question, toute simple, je l'espère:
    Je demande une valeur à l'aide d'une inputbox. Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var2 = InputBox("Entrez le solde à ajouter." & vbNewLine & vbNewLine & "Solde actuel: " & var1 & "$", "Modifier un solde")
    J'aimerais savoir s'il est possible de faire savoir à VBA que lorsque l'utilisateur clique sur annuler ou ferme l'input box, de ne rien faire, plutôt que de démarrer le débugger...?

    Merci
    Amerex
    «La chance sourit aux audacieux»
    Ms Access, Ms Excel, Ms FrontPage, Expression Web, Crystal, UniVerse, Basic, SQL, PHP, VBA...

    N'oubliez pas de noter les messages!

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Que penses tu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var2 = InputBox("Entrez le solde à ajouter." & _
                    vbNewLine & vbNewLine & "Solde actuel: " & _
                    var1 & "$", "Modifier un solde")
     
    If StrPtr(var2) = 0 Then
        MsgBox "Vous avez annulé"
    ElseIf var2 = "" Then
        MsgBox "Vous n'avez rien saisi"
    Else
        MsgBox "Vous avez saisi " & var2
    End If

  3. #3
    Membre habitué Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Points : 148
    Points
    148
    Par défaut
    Je viens d'essayer de l'insérer dans mon code... le debugger s'active...
    Je vous place mon code entier pour cette macro...:

    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
    Dim var1 As Currency
    Dim var2 As Currency
    Dim var3 As Currency
     
    var1 = Sheets("_depemp").Range("B2").Value
    var2 = InputBox("Entrez le solde à ajouter." & _
                    vbNewLine & vbNewLine & "Solde actuel: " & _
                    var1 & "$", "Modifier un solde")
     
    If StrPtr(var2) = 0 Then
        MsgBox "Vous avez annulé"
    ElseIf var2 = "" Then
        MsgBox "Vous n'avez rien saisi"
    Else
        MsgBox "Vous avez saisi " & var2
    End If
    var3 = var1 + var2
    Sheets("_depemp").Range("B2").Value = var3
    MsgBox ("Un ajout de " & var2 & "$ a été ajouté, montant le solde à " & var3 & "$ .")
    Label51.Caption = ""
    Label51.Caption = var3
    Le debugger accroche à la saisie de la variable "var2"... à l'inputbox :S
    Amerex
    «La chance sourit aux audacieux»
    Ms Access, Ms Excel, Ms FrontPage, Expression Web, Crystal, UniVerse, Basic, SQL, PHP, VBA...

    N'oubliez pas de noter les messages!

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut


    Faut adapter de telle sorte que le traitement ne soit lancé que lorsque queleque chose est saisi, sans quoi ça ne sert à rien

    De plus, Var2 doit être de type string pour que strptr fonctionne

  5. #5
    Membre habitué Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Points : 148
    Points
    148
    Par défaut
    Génial, ça fonctionne, j'ai changé le type de variable et j'ai spécifié un "END", de sorte que la macro ne continue pas les opérations. Mon code est celui ci-bas. MERCI beaucoup! Il me reste maintenant qu'à modifier les 51 autres macros haha!!

    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
    Private Sub Label51_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim var1 As Currency
    Dim var2 As String
    Dim var3 As Currency
     
    var1 = Sheets("_depemp").Range("B2").Value
    var2 = InputBox("Entrez le solde à ajouter." & _
                    vbNewLine & vbNewLine & "Solde actuel: " & _
                    var1 & "$", "Modifier un solde")
     
    If StrPtr(var2) = 0 Then
        MsgBox "Vous avez annulé"
        End
    ElseIf var2 = "" Then
        MsgBox "Vous n'avez rien saisi"
        End
    Else
        MsgBox "Vous avez saisi " & var2
    End If
    var3 = var1 + var2
    Sheets("_depemp").Range("B2").Value = var3
    MsgBox ("Un ajout de " & var2 & "$ a été ajouté, montant le solde à " & var3 & "$ .")
    Label51.Caption = ""
    Label51.Caption = var3
    End Sub
    Amerex
    «La chance sourit aux audacieux»
    Ms Access, Ms Excel, Ms FrontPage, Expression Web, Crystal, UniVerse, Basic, SQL, PHP, VBA...

    N'oubliez pas de noter les messages!

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

Discussions similaires

  1. [XL-2007] Exit Sub avec le bouton annuler de plusieurs inputbox.
    Par sybiou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/07/2014, 13h15
  2. Bouton Annuler dans un InputBox
    Par mawkli dans le forum VB.NET
    Réponses: 12
    Dernier message: 09/04/2013, 12h42
  3. [XL-2002] bouton annuler de l' "inputbox" à désactiver
    Par taratata_69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/07/2009, 10h13
  4. annulation dans une inputbox
    Par sharpeye dans le forum Access
    Réponses: 20
    Dernier message: 29/01/2009, 20h31
  5. [VBA inputbox] le bouton annuler ne marche pas
    Par herendel dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 12h42

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