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 :

Changement en direct d'un Label dans un userfor


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Changement en direct d'un Label dans un userfor
    Bonjour à tous,

    Aujourd'hui j'ai un petit soucis, pas forcément très important, mais j'aimerais savoir s'il est possible de changer en direct le nom d'un label sur un userform.

    Le code que j'ai mis en place

    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 Label3_Click()
     
    With Worksheets("mafeuil").Columns("A:A")
     
        Set c = .Find(TextBox1, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
              Label3.Caption = "Le Numéro " & c & " est déjà repertorié"
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
     
     
     
    End Sub
     
    Private Sub TextBox1_Change()
    'l'endoit ou se situt le numéro d'identification à remplir
    End Sub
    La problématique

    Le code ci-dessus fonctionne mais pas en totalité. Pour voir si le numéro d'identification est déjà répertorié, je suis obligé de cliquer sur le label3 dans le formulaire. Hors je souhaiterais que la vérification se fasse à l'instant où j'ai terminé d'écrire dans le cadre de la TextBox1. Est ce possible ?

    Merci

    Edit: Je complète juste la phrase (en gras) et pars chercher l'événement de contrôle associé (merci riaolle pour ta réponse)

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Citation Envoyé par Majaaaax Voir le message
    souhaiterais que la vérification se fasse à l'instant où j'ai terminé d'écrire.
    Tu as terminé d'écrire où?
    Je pense qu'il ne faut pas faire l'évènement sur le Label, mais sur le controle où tu écris.
    La question à se poser c'est : quand est-ce que je veux que mon Label se mette à jour ? Quand tu as répondu à cette question : tu cherches l'évènement de controle associé.

  3. #3
    Membre confirmé
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Points : 584
    Points
    584
    Par défaut
    /!\ a ne pas oublier le cas où tu n'auras rien dans TextBox1 et autres petites subtilités
    C'est en creusant qu'on fait des trous

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bon je coince toujours, mais je sent que le mur n'est pas si épais que ça.

    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
    26
    27
     
    Private Sub Label3_Click()
     
    End Sub
     
    Private Sub TextBox1_Change()
    'l'endoit ou se situt le numéro d'identification à remplir
    End Sub
     
    Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If Shift = 0 Then
     
    TextBox1 = Chr(KeyCode)
     
     
    With Worksheets("turbinedescr_data").Columns("A:A")
     
        Set c = .Find(TextBox1, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
            If c > 60000 Then Label3.Caption = "Le Numéro " & c & " est déjà repertorié"
            Loop While Not c Is Nothing And c.Address <> firstAddress
     
        End If
    End With
    End Sub

  5. #5
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Je pense qu'il est plus judicieux de placer ton code dan TextBox1_Change, non? N'est-ce pas quand tu changes le texte de la Textbox que tu veux faire la recherche?
    Quel est ton problème avec le code que tu nous montres dans ton message precedent?
    Il te manque un End If :
    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
     
    Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If Shift = 0 Then
            TextBox1 = Chr(KeyCode)
        End If     '<==================================
     
    With Worksheets("turbinedescr_data").Columns("A:A")
        Set c = .Find(TextBox1, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
            If c > 60000 Then Label3.Caption = "Le Numéro " & c & " est déjà repertorié"
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    End Sub

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bon finalement c'est résolu. Un grand merci à vous pour votre aide

    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 Label3_Click()
     
    End Sub
     
    Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
     
    With Worksheets("turbinedescr_data").Columns("A:A")
     
        Set c = .Find(TextBox1, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
            If c > 60000 Then Label3.Caption = "Le Numéro " & c & " est déjà repertorié"
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    End Sub
     
    Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
     
    End Sub

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

Discussions similaires

  1. label dans une BDD xml
    Par oliver2202 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 05/04/2006, 10h58
  2. Réponses: 1
    Dernier message: 29/11/2005, 10h10
  3. Probleme ajout label dans une fenetre
    Par sorry60 dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 05/11/2005, 17h51
  4. Label dans /etc/fstab
    Par domileg dans le forum Administration système
    Réponses: 5
    Dernier message: 02/12/2004, 16h05
  5. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26

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