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 :

Bouton annuler et Exit Sub


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut Bouton annuler et Exit Sub
    Bonjour,

    J'ai écrit le code ci-dessous avec la gestion d'erreur si ce n'est pas une date qui est saisie.
    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
    Sub Date_Connexion()
     
    Dim DateConnexion As Date
    Dim Lignefin As Integer
     
    On Error GoTo erreur_date
     
    'La sélection se fait sur la date de clôture dans l'extranet
     
    DateConnexion = InputBox("Quelle est la date de dernière connexion souhaitée ? (jj/mm/aa)", "Date dernière connexion")
    Range("D2").Value = "Inscrit après le " & DateConnexion
    Columns("D:D").EntireColumn.autofit
     
    Lignefin = ActiveWorkbook.Sheets(1).Range("A65536").End(xlUp).Row
    For i = 3 To Lignefin
        If Range("C" & i).Value < DateConnexion Then
            Range("D" & i).Value = "NON"
            Else: Range("D" & i).Value = ""
        End If
    Next i
     
    Exit Sub
     
    erreur_date:
    MsgBox ("Vous devez saisir une date au format jj/mm/aa")
    Resume
     
    End Sub
    Par contre je ne sais pas sortir si l'utilisateur clique sur annuler.

    En effet si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if DateCOnnexion="" then Exit Sub
    Le programme saute jusqu'au Exit Sub et m'affiche en boucle la msgbox.

    Quelqu'un aurait-il une idée ?

    Cdlt.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonsoir,
    Oui, tu boucles sur l'InputBox jusqu'à récupérer une saisie correcte, sinon, mets :

    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
    Sub Date_Connexion()
     
    Dim DateConnexion As Date
    Dim Lignefin As Integer
     
    On Error GoTo erreur_date
     
    'La sélection se fait sur la date de clôture dans l'extranet
     
    DateConnexion = InputBox("Quelle est la date de dernière connexion souhaitée ? (jj/mm/aa)", "Date dernière connexion")
    Range("D2").Value = "Inscrit après le " & DateConnexion
    Columns("D:D").EntireColumn.AutoFit
     
    Lignefin = ActiveWorkbook.Sheets(1).Range("A65536").End(xlUp).Row
    For i = 3 To Lignefin
        If Range("C" & i).Value < DateConnexion Then
            Range("D" & i).Value = "NON"
            Else: Range("D" & i).Value = ""
        End If
    Next i
     
    Exit Sub
     
    erreur_date:
    MsgBox ("Vous devez saisir une date au format jj/mm/aa")
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Bonsoir,

    Merci, mais en enlevant le "Resume" je n'ai plus de boucle infinie si l'utilisateur clique sur annuler par contre je perd également la boucle tant que la saisie est incorrecte.

    En résumé, ce que je souhaiterais c'est :
    1. Boucler tant que la saisie est incorrecte.
    2. Sortir de la macro si le bouton "Annuler" est cliqué.

    Bonne soirée.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Ca y est j'ai trouvé la solution.

    Au lieu d'utiliser la fonction Inputbox j'utilise la méthode Inputbox.

    Ca à l'air pareil mais ne l'est pas. Voici ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DateConnexion = Application.InputBox _
    ("Quelle est la date de dernière connexion souhaitée ? (jj/mm/aa)", "Date dernière connexion")
    If DateConnexion = False Then Exit Sub
    Cdlt.

+ 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. [VBA inputbox] le bouton annuler ne marche pas
    Par herendel dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 12h42
  3. [js]methode "alert", bouton annuler par defaut
    Par jeromejanson dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/09/2005, 11h35
  4. [VB.NET] Pb avec le bouton Annuler d'1 barre de progression
    Par dada1982 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2004, 09h56
  5. Réponses: 5
    Dernier message: 04/04/2003, 15h02

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