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 :

Navigation entre TextBoxs ou Comboboxs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Navigation entre TextBoxs ou Comboboxs
    Bonjour à tous,

    Sur une feuille de calcul (Excel 2000) sont disposés plusieurs textboxs et comboboxs.
    Je souhaiterais obtenir par code et après validation de ma saisie par un Chr(13) ou Chr(9) le passage au textbox ou combobox suivant.

    J'ai essayé le code suivant sans succès:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub TextBox1_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
     
    If Chr(keyAscii) = 9 Or Chr(keyAscii) = 13 Then
       TextBox2.Activate
    End If
     
    End Sub

    Quelqu'un peut-il me communiquer la bonne méthode?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    sauf erreur de ma part, la valeur du KeyCode est déjà le numérique.
    L'aide en ligne nous spécifie ceci :
    KeyCode Nombre entier correspondant au code de touche de la touche ayant été appuyée ou relâchée.
    Aussi, je ne crois pas qu'il soit nécessaire de passer par la fonction Chr() mais qu'il est possible de gérer directement les informations comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
     
    If keyAscii = 9 Or keyAscii = 13 Then
       TextBox2.Activate
    End If
     
    End Sub
    A vérifier
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Bonjour,
    J'ai essayé la modification proposée par jpcheck sans plus de résultat.
    Ne serais-ce pas la méthode "Activate" qui ne fonctionnerait pas?
    (pourtant utilisée par ailleurs avec succès)
    Et si oui par quoi la remplacer?

    Salutations

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Bonjour,
    J'obtiens le résultat souhaité (passage au Textbox suivant) en utilisant la touche espace Chr(32) alors que je ne parviens pas à déclencher l'action avec la touche return Chr(13) ou tabulation horizontale Chr(9) qui ne sont pas prises en compte par KeyAscii ni d'ailleurs par l'instruction IF...THEN essayée dans un évènement CHANGE.
    KeyAscii me renvoie 13 lorsque je fais ShiftReturn, ce qui ne serait pas très commode dans l'utilisation de mon application Excel.
    Quelqu'un pourrait-il me dire quelle est la raison pour laquelle mes touches Return et Tab ne me renvoient pas de valeur ASCII.
    Merci d'avance

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Tu ne doit pas mettre ton test dans KeyPress mais dans KeyDown (ou Up)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
            TextBox2.SetFocus
        End If
    End Sub
    A+

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Merci!
    La solution de LeForestier est la bonne sauf que j'ai remplacé SetFocus qui génère une erreur 438 par Activate.
    Félicitations pour ce beau et bon site.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
            TextBox2.Activate
        End If
    End Sub

Discussions similaires

  1. [Débutant] Coordination entre TextBox et Combobox
    Par laiiha dans le forum VB.NET
    Réponses: 28
    Dernier message: 20/06/2014, 14h34
  2. [XL-2010] Navigation entre diverses textbox et frame d'un userform
    Par Naaby dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/06/2011, 18h34
  3. Binding entre TextBox et ComboBox
    Par Icewall dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 06/08/2009, 13h10
  4. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09
  5. [VB6] suggestion des entrés dans un combobox
    Par s.rais dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/02/2004, 15h32

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