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 :

[VBA-E] Appuyer sur la flèche du haut dans un textbox


Sujet :

Macros et VBA Excel

  1. #21
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens un peu de code à completer :

    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
     
    Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
     Select Case KeyCode
       Case vbKeyReturn
          'touche Entrée appuyée
           TextBox2 = TextBox2 + TextBox1 + vbCrLf
           TextBox1 = ""
        Case vbKeyUp
           KeyCode = 0
           '... rajouter ici le traitement selection dans textbox2..
        End Select
    End Select
     
    End Sub
    sinon ton textbox2.. est-t'il visible sur ta form..? il serai peu-être plus simple d'utiliser un listBox.. , au moins tu n'aurai pas d'index à gérer...

  2. #22
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    Ender> no, je parlais du refocus... il ne faut rien redéfinir a ce niveau, je te rassure.

  3. #23
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    donc avec une listbox1 à la place du textbox2 :
    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 TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
     Select Case KeyCode
       Case vbKeyReturn
          'touche Entrée appuyée
          If ListBox1.ListCount > 20 Then ListBox1.List(0).Delete
           ListBox1.AddItem TextBox1
           ListBox1.ListIndex = ListBox1.ListCount - 1
           TextBox1 = ""
             KeyCode = 0 'On change pas de textbox..
        Case vbKeyUp
           KeyCode = 0
           '... rajouter ici le traitement selection dans textbox2..
           If ListBox1.ListIndex > 0 Then
              ListBox1.ListIndex = ListBox1.ListIndex - 1
            End If
           TextBox1 = ListBox1.Text
        Case vbKeyDown
           KeyCode = 0
           '... rajouter ici le traitement selection dans textbox2..
           If ListBox1.ListIndex < ListBox1.ListCount - 1 Then ListBox1.ListIndex = ListBox1.ListIndex + 1
          TextBox1 = ListBox1.Text
      End Select
    End Sub

  4. #24
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    bbil,
    Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Tu veux plutôt dire : Private Sub TextBox1_.....

    sinon ton textbox2.. est-il visible sur ta form..? il serait peut-être plus simple d'utiliser un listBox.. , au moins tu n'aurais pas d'index à gérer...
    Oui, il est visible sur le userform.
    Pour le listbox, je ne préfère pas parce que dans le code il m'arrive de comparer ce que contient TextBox2 à l'instant T+1 avec ce qu'il contenait à l'instant T. Donc j'ai besoin de connaitre tous les caractères de TextBox2.
    Mais je vous rassure ça ne change en aucun cas le problème pour ▲ qui concerne TextBox1

  5. #25
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    j'aime bien cette solution elle est claire et facile a mettre en oeuvre.

  6. #26
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    bbil, bien joué ton code avec le listbox
    Je pense qu'il peut servir à d'autres pour qui c'est égal d'avoir une listbox.

    Par contre, tu m'a peut-être mis sur la piste. Plutôt que de créer un tableau qui me servira de pile et de risquer d'en sortir et d'avoir une belle erreur de débogage, je vais faire une pile à partir de la listbox. Elle ne sera pas visible, et quand j'appuierai sur ▲, je copierai la ligne selectionnée dans TextBox1.
    J'essaie ça tout de suite

  7. #27
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Ender
    ...Pour le listbox, je ne préfère pas parce que dans le code il m'arrive de comparer ce que contient TextBox2 à l'instant T+1 avec ce qu'il contenait à l'instant T. Donc j'ai besoin de connaitre tous les caractères de TextBox2....
    ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton1_Click()
     Dim t As Integer
     t = ListBox1.ListCount - 2
     If t >= 0 Then
       MsgBox "Je Compare T+1 :" & ListBox1.List(t + 1) & " Avec T : " & ListBox1.List(t)
     End If
    End Sub

  8. #28
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    C'est que ça marche à merveille cette histoire
    Dans le code de bbil
    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 TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
     Select Case KeyCode
       Case vbKeyReturn
          'touche Entrée appuyée
          If ListBox1.ListCount > 20 Then ListBox1.List(0).Delete
           ListBox1.AddItem TextBox1
           ListBox1.ListIndex = ListBox1.ListCount - 1
           TextBox1 = ""
             KeyCode = 0 'On change pas de textbox..
        Case vbKeyUp
           KeyCode = 0
           '... rajouter ici le traitement selection dans textbox2..
           If ListBox1.ListIndex > 0 Then
              ListBox1.ListIndex = ListBox1.ListIndex - 1
            End If
           TextBox1 = ListBox1.Text
        Case vbKeyDown
           KeyCode = 0
           '... rajouter ici le traitement selection dans textbox2..
           If ListBox1.ListIndex < ListBox1.ListCount - 1 Then ListBox1.ListIndex = ListBox1.ListIndex + 1
          TextBox1 = ListBox1.Text
      End Select
    End Sub
    J'ai juste ajouté TextBox2=TextBox2+TextBox1+vbCrLF juste avant TextBox1="" (ligne 7)
    Et c'est bon !!!

    Merci bbil pour cette idée de Listbox et pour ton code
    Merci Ouskel'n'or et Commodore_Psykopate pour l'avoir mis sur la bonne voie.


    Juste un tout petit problème, si je mets Listbox1.visible = false, ça marche pas

  9. #29
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    allez, pour la route

    message d'erreur ?
    où as tu mis listbox1.visible=false ?

  10. #30
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    où as tu mis listbox1.visible=false ?
    Tu veux dire dans mon code ?
    Nulle part, je l'ai mis dans les propriétés qui sont à gauche de l'écran, là où y'a la liste de toutes les propriétés de chaque objet.


    Juste un truc en +,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ListBox1.ListCount > 3 Then ListBox1.List(0).Delete
    Je vois le premier texte tapé sur la première ligne, le deuxième sur la deuxième ligne, le troisième sur la troisième ligne, le quatrième sur la quatrième ligne et après si je tape un nouveau truc dans TextBox1, j'ai

    Erreur d'exécution 424 Objet requis
    et ça surligne
    ListBox1.List(0).Delete

    Pourquoi ?

  11. #31
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut

    je crois que c'est plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.RemoveItem (0)

  12. #32
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Exact, merci

    Et pour le fait qu'il faut que ce soit visible, c'est normal ?

  13. #33
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    non, normalement tu peux la masquer...
    -edit- quelle erreur fait il quand tu la mets en visible=false ?
    quelle est la ligne surlignée ?

  14. #34
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Ender
    Juste un tout petit problème, si je mets Listbox1.visible = false, ça marche pas
    oui c'est parce qu'elle n'as pas de jambe... !

    tu aurai pu être plus clair dans ton message...

    bon en fait (pour les autres) quant tu met le listbox1.visible à false .. lors de la lecture de Listbox1.text , celle-ci est toujours vide.. ! (je le savais pas ..!)

    bon remplace les
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ListBox1.List(ListBox1.ListIndex)

  15. #35
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Bon, je crois que le débat est clos. Le problème est résolu.
    Merci à tous

  16. #36
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    bon, ben j'aurai appris quelque chose aussi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VBA-E] Pb sur gestion des erreurs
    Par micoscas dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 08/03/2005, 17h08
  2. Réponses: 12
    Dernier message: 14/02/2005, 10h57
  3. Changer de texture en appuyant sur une touche
    Par Hyoga dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2005, 23h36
  4. Réponses: 15
    Dernier message: 28/01/2005, 04h46
  5. Comment Appuyer sur le bouton d'une page web...?
    Par Mayti4 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/01/2005, 14h07

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