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 :

interdire de sortir d'un "SETFOCUS"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Par défaut interdire de sortir d'un "SETFOCUS"
    Bonjour à Tous

    J'ai "une zone de liste modifiable" intitulée "Nom_Client" , j'ai positionné le SETFOCUS au départ sur cette zone.
    Je veux interdire à l'utilisateur de changer la position du curseur avant de sélectionner un nom de la liste.
    j'ai utilisé le code suivant qui n'a pas marché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Nom_Client.Text = "" Then
    MsgBox ("Tu dois selectionner le nom du client d'abord")
    Else
    C_Tel.SetFocus
    End If
    merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Il se trouve que la solution, lorsqu'elle est possible, dépend de plusieurs aspects dont tu ne dis pas un mot.
    - où se trouve ce contrôle ? Sur un UserForm ou sur une Feuille de calcul ?
    - si sur une feuille de calcul ? est-ce un contrôle formulaire ou un contrôle activex ?

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Par défaut
    Je m'excuse, c'est dans un userform excel
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bien.
    Il te suffit alors d'utiliser l'évènement exit de cette combobox, ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      If combobox1.listindex = -1 then
         cancel = true
      else
         ......
      end If
    End Sub
    Observe par ailleurs que je n'ai pas utilisé la propriété text de la combo. Le fait que cette propriété ne soit pas = "" ne signifie absolument pas qu'un article a été sélectionné. Cette propriété concerne la zone d'édition, dans laquelle l'utilisateur peut avoir écrit n'importe quoi ...

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ce genre de manoeuvre est possible, mais cela doit être utilisé avec précaution. Pour peu qu'il y ait une erreur à quelque part et que l'utilisateur voit rouge parce qu'il est prisonnier d'un boucle sans fin, il risque de recourir à des solutions expéditives, genre débrancher l'ordinateur. (Surtout que le Ctr-Alt-Delete de Windows 10 est aussi lent qu'un escargot infirme.)

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    aux utilisateurs nerveux, j'emploie les grands moyens, au choix :

    - des labels pour valider ou invalider les champs
    - une petite croix rouge qui passe en coche verte si le champs est correct
    - pour les plus brutaux : des MsgBox histoire de les calmer
    - en préventif : ne jamais oublier les info-bulles

  7. #7
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bien.
    Il te suffit alors d'utiliser l'évènement exit de cette combobox, ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      If combobox1.listindex = -1 then
         cancel = true
      else
         ......
      end If
    End Sub
    Observe par ailleurs que je n'ai pas utilisé la propriété text de la combo. Le fait que cette propriété ne soit pas = "" ne signifie absolument pas qu'un article a été sélectionné. Cette propriété concerne la zone d'édition, dans laquelle l'utilisateur peut avoir écrit n'importe quoi ...
    Merci unparia, c'est ce que je cherche, fonctionne parfaitement

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

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