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 :

Problème de suppression dans un TextBox ! [XL-2010]


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
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut Problème de suppression dans un TextBox !
    Je continue sur mon projet de suivi de vols journaliers, et je suis confronté à un soucis.

    Les heures de vols sont en centièmes. J'ai donc créé une case txt heure centième (nommée txtHHC) où à chaque changement dans cette case, il se passe un événement dans la case txt heure/minutes/secondes (nommées txtHHM) située juste après sur le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub txtHHC_Change
    txtHHC.Value = Replace(txtHHC.Value, ".", ",") ´ je transforme les points en virgule
    txtHHM.Value = Format((txtHHC.Value / 24), "hh:mm:ss") ' je remplace heures centièmes en heure minute
    End Sub
    Cela fonctionne mais !
    Primo si je rentre une valeur autre que des chiffres où le point où la virgule, j'ai une erreur que j'aimerai ignorer
    Secundo, lorsque j'ai saisi dans mon txt centième la valeur, si je fais à nouveau le focus dessus avec ma souris pour changer totalement la valeur avec la touche BackSpace du clavier, et bien à la suppression de tous les caractères, il me sort une erreur de type.
    Je peux aller avec ma souris dans la case et changer un chiffre mais en aucun cas je ne peux tout y supprimer via cette fameuse touche BackSpace. À savoir que je n'ai pas essayer la touche Supp 🤔 !
    Je ne sais pas trop si je suis assez clair là ?
    De plus j'ai limité à 4 le nombre de caractère via les propriétés du TxtBox ! Est ce qu'il y aurait une incidence à cela ?

    Merci à vous tous.

    Cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Tony4152 Voir le message
    Primo si je rentre une valeur autre que des chiffres où le point où la virgule, j'ai une erreur que j'aimerai ignorer
    Bonjour,

    Pour contrôler la saisie dans le TextBox, vous pourriez ajouter ce code limitant la saisie aux seuls caractères contenus dans la fonction Instr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub txtHHC_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
            If InStr("1234567890,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
    Secundo, lorsque j'ai saisi dans mon txt centième la valeur, si je fais à nouveau le focus dessus avec ma souris pour changer totalement la valeur avec la touche BackSpace du clavier, et bien à la suppression de tous les caractères, il me sort une erreur de type.
    Il faut transformer la valeur du TextBox en valeur numérique, ou l'assigner à 0 si vide avant de faire la division par 24.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub txtHHC_Change
    txtHHC.Value = Replace(txtHHC.Value, ".", ",") ´ je transforme les points en virgule
    txtHHM.Value = Format((CDbl(txtHHC.Value) / 24), "hh:mm:ss") ' je remplace heures centièmes en heure minute
    End Sub
    Dernière modification par Invité ; 09/03/2017 à 07h40.

  3. #3
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Bonjour Éric.

    Comme à chaque réponse, je reste toujours sur le c.. si je puis me permettre.
    Mais comment savez-vous tout cela vous les internautes ?
    Je teste cet après-midi et te tiens au courant des événements. Mais je doute que cela ne fonctionne pas 😉
    Par la même occasion, je vais aller étudier ces fonctions InStr et CDbl. Car s'il est toujours plaisant de se faire aider je crois qu'il est aussi gratifiant d'apprendre du savoir des autres.

    Un grand grand merci.

  4. #4
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Retour d'expérience !

    Alors, concernât la saisie dès caractère, ça fonctionne très bien. Au point de l'avoir utilisé dans d'autres UserForm.
    Par contre la suppression de l'ensemble d'un textbox par la touche Supp ou BackgSpace du clavier me donne une erreur de type avec un chiffre 13 !
    Là je sèche 🤒
    Si tu as une autre idée Éric, je suis preneur.
    Je laisse le sujet ouvert.

    À bientôt.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Tony4152 Voir le message
    Bonjour,

    A essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub txtHHC_Change()
     
        txtHHC.Value = Replace(txtHHC.Value, ".", ",") '´ je transforme les points en virgule
        If txtHHC <> "" Then
           txtHHM.Value = Format((txtHHC.Value / 24), "hh:mm:ss") ' je remplace heures centièmes en heure minute
        Else
           txtHHM.Value = Format(0, "hh:mm:ss") ' je remplace heures centièmes en heure minute
        End If
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Hello,

    Merci Éric, voilà qui fonctionne à merveille. Je pense que tu n'en doutais pas. Le 0 est enfin reconnu et cela m'arrange car lorsque le vol est annulé j'ai quand même besoin d'afficher les heures en heure/minute afin d'effectuer un calcul global des heures.
    Mais une solution amène parfois un problème 😞
    Je me suis aperçu sans le vouloir qu'en tapant d'abord la virgule, cela engendre une erreur. Je pensais qu'en affichant la virgule, le zéro s'inscrivait automatiquement ?

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

Discussions similaires

  1. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/02/2006, 12h09
  2. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/02/2006, 11h36
  3. [VB]Problème d'effacement dans une TextBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 24/01/2006, 17h55
  4. [Jtable] problème de suppression dans une Jtable
    Par gianni17 dans le forum Composants
    Réponses: 1
    Dernier message: 02/12/2005, 18h36
  5. Problème de suppression dans une table
    Par Splinter dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/10/2005, 10h55

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