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 :

TextBox en Vba Excel


Sujet :

Macros et VBA Excel

  1. #21
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Citation Envoyé par NEC14 Voir le message
    Voilà :
    Lorsque le n° est choisi, un montant s'affiche dans LstMont, ...
    Tu dis qu'un montant s'affiche dans LstMont quand tu as sélectionné dans la combo le bon numero d'engagement.
    Mais comment ca se présente ?
    Dès que tu choisis le bon n° d'engagement il y a un des items de la liste qui se met en surbrillance ou bien il n'y a qu'un item qui apparaît, comme dans un textbox en fait ? Est-ce que tu metx quelque chose en surbrillance dans la liste où il y a les montants ou bien c'est automatique, ou bien il n'y a qu'un seul montant qui apparait. Je pense que la réponse à cette question aidera bcp pour la suite. Parce que comme dit, chez moi tout marche.
    Peut etre aussi le fait qu'il y ait un obglet change la donne, je vais tester, mais en attendant, dis moi à quoi ressemble ta listbox avec les montants.

  2. #22
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Voici un exemple
    Il n'y a qu'un seul affichage dans LstMont

  3. #23
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok. Alors les deux syntaxes qu'on t'a passées fonctionnent. Dans la mienne, supprime simplement le lcase et remplace le par trim mour supprimer d'éventuelles saisie d'espace (on les voit pas en cas de fausse manip')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TxtMontFact_Exit()
    If Trim(TxtMontFact.Value) = LstMont.List(LstMont.listindex) Then
        TxtOui.Text="X"
        TxtNon.Text=""
    End If
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TxtMontFact_Exit()
    If Trim(TxtMontFact.Value) = LstMont.Value Then
        TxtOui.Text="X"
        TxtNon.Text=""
    End If
    End Sub

  4. #24
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Est-ce que tu peux envoyer le code de Sub CmbNumEng_Change() ?

    Tu es bien bien sûr que c'est une listbox là où apparaît le montant de la facture ?

    non le montant de l engagement

  5. #25
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Edit
    L'établissement de tes listes étant pré-établi, pense que tu peux avoir deux formats de séparateurs décimaux, la virgule ou le point. Fais le test avec les 2 lors de la saisie dans ton textbox. Si l'un des deux fonctionne, il faudra ajouter la conversion de séparateur dans le txtbox.

  6. #26
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Ok. Alors les deux syntaxes qu'on t'a passées fonctionnent. Dans la mienne, supprime simplement le lcase et remplace le par trim mour supprimer d'éventuelles saisie d'espace (on les voit pas en cas de fausse manip')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TxtMontFact_Exit()
    If Trim(TxtMontFact.Value) = LstMont.List(LstMont.listindex) Then
        TxtOui.Text="X"
        TxtNon.Text=""
    End If
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub TxtMontFact_Exit()
    If Trim(TxtMontFact.Value) = LstMont.Value Then
        TxtOui.Text="X"
        TxtNon.Text=""
    End If
    End Sub
    La procédure ne marche pas ce message apparaît :
    Erreur de compilation
    La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure de même nom.

    Citation Envoyé par melouille56 Voir le message
    non le montant de l engagement
    Oui je suis sûr. "Zone de liste" dans la boîte à outil, ListBox dans les propriétés.

    Citation Envoyé par ouskel'n'or Voir le message
    Edit
    L'établissement de tes listes étant pré-établi, pense que tu peux avoir deux formats de séparateurs décimaux, la virgule ou le point. Fais le test avec les 2 lors de la saisie dans ton textbox. Si l'un des deux fonctionne, il faudra ajouter la conversion de séparateur dans le txtbox.
    Dans le montant de l'engagement, c'est le point par défaut pour la décimale

    Citation Envoyé par NEC14 Voir le message
    Dans le montant de l'engagement, c'est le point par défaut pour la décimale
    En fait au moment du choix dans la Combo, un "X" se met par défaut dans TxtNon. Après la saisie dans TxtMontFact et si le montant est égal au montant affiché dans LstMont, alors "X" dans TxtOui

    Citation Envoyé par melouille56 Voir le message
    Est-ce que tu peux envoyer le code de Sub CmbNumEng_Change() ?

    Tu es bien bien sûr que c'est une listbox là où apparaît le montant de la facture ?
    Voici :

    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 CmbNumEng_Change()
    Dim Cell As Range
    Dim Tab1(0 To 50, 0 To 1) As String
    Dim Tab2(0 To 50, 0 To 1) As String
    Dim Tab3(0 To 50, 0 To 1) As String
    Dim I As Byte
    Dim L As Byte
        FrmEngt.LstMont.Clear
        FrmEngt.LstTier.Clear
        FrmEngt.LstBat.Clear
            If FrmEngt.CmbNumEng.Value <> "" Then
                L = Len(CmbNumEng)
                    For Each Cell In Sheets("Engagements").Range("IntituNum")
                        If UCase(Left(Cell.Text, L)) = UCase(CmbNumEng.Text) Then
                        Tab1(I, 0) = Cell.Offset(0, 4).Text
                        Tab2(I, 0) = Cell.Offset(0, 5).Text
                        Tab3(I, 0) = Cell.Offset(0, 7).Text
                    I = I + 1
                End If
            Next
        FrmEngt.LstTier.List = Tab1()
        FrmEngt.LstBat.List = Tab2()
        FrmEngt.LstMont.List = Tab3()
    End If
    End Sub

  7. #27
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'espère que tu as adapté l'exit... La syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub LaTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Il faut tout te mettre ?

  8. #28
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    J'espère que tu as adapté l'exit... La syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub LaTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Il faut tout te mettre ?
    Ben Oui, ne te fache pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub TxtMontFact_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Trim(TxtMontFact.Value) = LstMont.Value Then
    TxtOui = "X"
    TxtNon = ""
    End If
    End Sub
    l'autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub TxtMontFact_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Trim(TxtMontFact.Value) = LstMont.List(LstMont.Listindex) Then
    TxtOui = "X"
    TxtNon = ""
    End If
    End Sub
    ne fonctionne pas plus.

  9. #29
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour à tous,

    Après une nuit de repos, je me suis remis à ce problème.

    Un "X" s'affiche par défaut dans TxtNon après que j'aie modifié un peu le code du
    Private Sub CmbNumEng
    Aprés FrmEngt.LstMont.List=Tab(3)
    J'ai ajouté cette ligne
    FrmEngt.TxtNon.Value="X"

    Mais mon problème reste entier, puisque je n'arrive pas à afficher un "X" dans TxtOui lorsque le chiffre du TxtMontFact est égal à celui de LstMont.

  10. #30
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TxtOui.text = "X"
    TxtNon.text = ""
    ?

  11. #31
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Et si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TxtOui.text = "X"
    TxtNon.text = ""
    ?
    Bonjour ouskel'n'or,

    J'ai essayé avec .value et .text sans résultat.

  12. #32
    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,
    Je crois qu'il n'a pas bien compris quand l'événement Text_exit survient,
    Mais peut être une autre piste...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox1_Change()
        If Trim(TxtMontFact.Value) = LstMont.List(LstMont.listindex) then
            LabOui.Caption = "X"
            LabNon.Caption = ""
        Else
            LabOui.Caption = ""
            LabNon.Caption = "X"
        End If
    End Sub
    Et une autre remarque, tu met des contrôle TextBox pour visualiser tes "X", que les utilisateurs peuvent modifiés, ce serait plus judicieux de mettre des labels (intitulé)
    Et encore, tu emploi Tab comme tableau mais ce mot est réservé par VB et risque de te causer des problèmes.
    A+

  13. #33
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Merci pour ta remarque, je vais changer les Tab et mettre des Labels à la place des TextBox.
    J'essaie ton code, je suis un peu long à répondre car je cherche également de mon côté.
    A++

    Super ton système de Label. Par contre le reste ne fonctionne pas. Lorsque je tape un montant dans TxtMontFact c'est non par défaut.
    Je démoralise que ça ne marche pas. En plus j'ai mon chef sur le dos.
    Bon allez, je me remets à la recherche.
    Je n'y arrive pas.Je vais laisser tomber et passer à une autre façon de faire.
    Si vous avez de quoi éclairer ma lanterne pour que j'y vois plus clair. Mais là, c'est la purée de poix.

  14. #34
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    J'y suis arrivé enfin avec le code que m'a envoyé melouille56, je l'ai un peu trituré et ça marche.

    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
    Private Sub TxtMontFact_Change()
    Dim i As Integer
    For i = 0 To LstMont.ListCount - 1
    If TxtMontFact.Value = LstMont.List(i) Then
        LabOui.Caption = "X"
        LabNon.Caption = ""
        ElseIf TxtMontFact.Value <> LstMont.Value Then
        LabOui.Caption = ""
        LabNon.Caption = "X"
        End If
        Next i
    End Sub
    ------------
    Private Sub UserForm_Activate()
    LabOui.Caption = ""
    LabNon.Caption = "X"
    TxtMontFact = ""
    LstMont.Clear
    LstMont.AddItem ""
    End Sub
    Si je mets un montant différent de celui de LstMont, le Label Non, s'affiche bien, si je modifie ce montant en mettant le même que celui de LstMont, le Label Oui s'affiche bien. Cependant, une fois que le label est passé à Oui, il ne revient pas sur non en cas de changement de montant.

    Bonjour à tous,

    Avez-vous une solution à me proposer ? si il n'y en a pas tant pis.
    A+

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

Discussions similaires

  1. Soustraction entre 2 TextBox en Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/12/2008, 11h06
  2. VBA-Excel copier la valeur d'une textbox dans une cellule
    Par GrandGarfield dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/08/2006, 10h15
  3. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55
  4. [VBA][Excel]Rendre un checkbox ou textbox grisée
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/01/2006, 09h17
  5. Donner le focus à un Textbox (VBA Excel)
    Par sophie1909 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/10/2005, 17h40

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