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 :

Sortir d'un UserForm lorsque la saisie d'un TextBox est obligatoire


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    CFA
    Inscrit en
    Février 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : CFA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2016
    Messages : 16
    Par défaut Sortir d'un UserForm lorsque la saisie d'un TextBox est obligatoire
    Bonjour à tous et d'avance merci à tous ceux qui se pencheront sur mon petit soucis.

    J'ai utilisé le code de silkyroad (que je remercie au passage pour cette contribution vraiment top) http://silkyroad.developpez.com/VBA/...serForm/#LII-E , afin d'obliger la saisie d'un TextBox.
    Le problème c'est que ca marche trop bien. J'ai créer un bouton pour Unload l'UserForm mais j'obtient quand même le message d'erreur.
    Comment faire pour cliquer sur "Annuler" (CommandButton2) sans avoir ce fameux message.

    J'ai essayer quelque chose comme ça... mais ca ne veut pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Focer la saisie d'une information
    Private Sub code2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
    '    If CommandButton2.Click = True Then Cancel = False
     
        If Code2.Value = "" Then Cancel = True
        If Code2.Value = "" Then MsgBox ("Veuiller choisir une famille et ensuite renseigner la lettre de codification !"): Exit Sub
     
    End Sub

    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Quel message d'erreur?

  3. #3
    Membre averti
    Homme Profil pro
    CFA
    Inscrit en
    Février 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : CFA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2016
    Messages : 16
    Par défaut
    Bonjour,
    celui-ci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Code2.Value = "" Then MsgBox ("Veuiller choisir une famille et ensuite renseigner la lettre de codification !"): Exit Sub
    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    un message d'erreur est en général indésirable!

    ici il est initié par le programmeur qui à toute l'attitude pour le supprimer!

    allé lances toi modifie ton code ,Courage!
    Dernière modification par AlainTech ; 12/02/2016 à 06h36. Motif: Suppression de la citation inutile

  5. #5
    Membre averti
    Homme Profil pro
    CFA
    Inscrit en
    Février 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : CFA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2016
    Messages : 16
    Par défaut
    Encore merci pour votre patience, mais je souhaite 2 chose.

    - Que l'utilisateur soit obligé de saisir quelque chose, d'où le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Code2.Value = "" Then Cancel = True
    - Et ensuite l'avertir du pourquoi il est bloqué, d'où le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Code2.Value = "" Then MsgBox ("Veuiller choisir une famille et ensuite renseigner la lettre de codification !"): Exit Sub
    En réalité ce n'est pas le message d'erreur qui me bloque, mais plutôt la première ligne de code. Je ne peux cliquer sur mon CommandButton2 qui contient la sortie de la macro.
    J'ai donc essayé quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CommandButton2.Click = True Then Cancel = False
    En gros interdit de sortir du Textbox sauf si je clique sur Annuler "CommandButton2"


    Mais ca ne veux pas.... enfin je ne sais pas faire

    Voila j'espère que j'aurais été plus clair cette fois ci et vous avoir donné tous les éléments nécessaires.

    Bonne continuation

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu ne peux pas interdire la sortie de Textbox sauf en cliquant sur annuler! Par définition quand tu click sur annuler, tu est déjà sorti de Textbox!

    Pour interdire de sortir de Textbox faudrait le faire sur l'événement Exit hors quand il ce déclenche c'est que tu es en train de sortir et celle-ci devient inévitable!

    Contrôle tes champs sur le bouton valider!

  7. #7
    Membre averti
    Homme Profil pro
    CFA
    Inscrit en
    Février 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : CFA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2016
    Messages : 16
    Par défaut
    Encore merci, j'aurais du te mettre le code en entier, j'étais bien sur l'évènement EXIT, mais je n'avais pas anticipé le ANNULER

    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
    'Forcer la saisie en majuscule
    Private Sub code2_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
     
        keyAscii = Asc(UCase(Chr(keyAscii)))
     
    End Sub
     
    'Focer la saisie d'une information
    Private Sub code2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
       If Code2.Value = "" Then Cancel = True
       If Code2.Value = "" Then MsgBox ("Veuiller choisir une famille et ensuite renseigner la lettre de codification !"): Exit Sub
     
    End Sub
     
    'Forcer la saisie d'une lettre et sous erreur supprime le texte à remplacer
     
    Private Sub code2_Change()
     
        If IsNumeric(Right(Code2, 1)) Then
            MsgBox "Le caractère saisi n'est pas valide, veuillez saisir une lettre"
            Code2 = Left(Code2, Len(Code2) - 1)
        End If
     
    End Sub

    Du coup je vais faire comme pour les autres
    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
    Private Sub CommandButton1_Click()
    Dim derligne As Integer
    Dim codo
     
    'Différent test pour vérifier que tout soit bien rempli
        If Ouvrage.Text = "Ouvrage" Then MsgBox ("Vous ne pouvez pas utiliser cette Famille !"): Exit Sub
        If Code2 = "" Then MsgBox ("Veuillez saisir une lettre pour incrémenter !"): Exit Sub
        If Catégorie.Text = "" Then MsgBox ("Veuillez saisir une catégorie !"): Exit Sub
        If Désignation = "" Then MsgBox ("Veuillez saisir une désignation !"): Exit Sub
        If Unité = "" Then MsgBox ("Veuillez saisir une unité !"): Exit Sub
     
            codo = Code.Text & "." & Code2.Text
     
     
    'Test l'existance du code saisi
        With Feuil3
        derligne = .Range("A65536").End(xlUp).Row
     
        For I = 1 To derligne
            If Feuil3.Range("A" & I) = codo Then
            MsgBox ("Vous ne pouvez pas utiliser cette lettre, elle est déja utilisée !"): Code2 = Left(Code2, Len(Code2) - 1): Code2.SetFocus: Exit Sub
            End If
        Next I
        End With
    Merci de ton aide

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

Discussions similaires

  1. Ouvrir une userform lorsqu'on clic sur une cellule
    Par AntMi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/01/2014, 09h15
  2. [XL-2007] UserForm - Fermeture après saisie
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2013, 17h16
  3. changer de userform lorsque la feuille change
    Par p0l1n dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2010, 06h55
  4. [VBA]sortir d'un formulaire après controle saisie
    Par pageplant dans le forum IHM
    Réponses: 6
    Dernier message: 25/06/2008, 14h37
  5. Réponses: 1
    Dernier message: 25/06/2007, 19h32

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