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 :

Forcer le point dans toutes les TextBox [XL-365]


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
    Ingénieur commercial
    Inscrit en
    Février 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2021
    Messages : 9
    Par défaut Forcer le point dans toutes les TextBox
    Bonjour,

    Merci à tous car jusqu'à maintenant la seule consultation des posts déjà disponible avait suffit à m'aider, seulement maintenant je bloque et je ne sais pas d'où viens le souci.

    J'ai créé un petit utilitaire à l'attention de la force de vente permettant de remplir automatiquement des listes de prix telles que celle que l'on peut trouver sur des devis.

    Pour renseigner la remise appliquée, j'ai utilisé des TextBox qui doivent me renvoyer un nombre, pour cela, il faut être sur que ce nombre soit écrit, le cas échéant, avec un séparateur de décimal représenté par un ".".
    Mon code devenant assez lourd, j'ai décidé d'utiliser les modules de classe pour gérer cela dans toutes les Textbox, et alors que cela fonctionnait sans les module de classe, avec, ça ne fonctionne pas, les TextBox me renvois systématiquement des nombre avec un séparateur à virgule et au format texte, donc inexploitable.

    Je suis perdu.

    Voilà ce que j'ai fait :

    Le module de classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public WithEvents TextBoxEvent As MSForms.TextBox
     
    Private Sub TextBoxEvent_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
        Select Case KeyAscii
            Case 44, 46: KeyAscii = Asc(Format(0, "."))
        End Select
     
     
    End Sub
    Le code dans UserForm :

    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
    Option Explicit
    Private TextBoxCollection As Collection
     
    'Dim Nbref As Integer
     
    Private Sub Userform_Initialize()
     
    Dim Ctrl As Control
    Dim TextBoxInstance As TextBoxClasse
    Set TextBoxCollection = New Collection
     
    For Each Ctrl In Me.Controls
     
        If TypeName(Ctrl) = "TextBox" Then
            Set TextBoxInstance = New TextBoxClasse
            Set TextBoxInstance.TextBoxEvent = Ctrl
            TextBoxCollection.Add TextBoxInstance
        End If
     
    Next Ctrl
     
    End Sub
    J'ai du mal faire, mais je trouve pas où

    (je précise que je ne suis pas pro et autodidacte, certaines notions peuvent parfois être un peu compliqué à appréhender pour moi)

    Si quelqu'un pouvait me dire comment me corriger, je lui en serais éternellement reconnaissant.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Question:
    Après le remplissage de la textbox, avez-vous essayé d'ajouter à la suite, une ligne comme celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        TextBox1.Text = Replace(TextBox1.Text, ",", ".")
    Cdlt

  3. #3
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Bonjour,
    Créer un module de classe et y mettre ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public WithEvents TextBoxGroup As MSForms.Textbox
     
    Private Sub TextBoxGroup_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
        'transforme le point en virgule
        If KeyAscii = 46 Then KeyAscii = 44
     
    End Sub
    @+

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2021
    Messages : 9
    Par défaut
    Super Nicolas, merci beaucoup, ça marche.

    En fait je crois que j'ai voulu faire compliqué alors que cela devait être simple !!

    Merci encore.

  5. #5
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Bonjour,
    Au plaisir.
    @+

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 02/04/2019, 20h29
  2. [WPF] Impossible d'écrire dans toutes les TextBox
    Par alex_vino dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 21/10/2010, 11h01
  3. [VBA-E] Supprimer le cont de cellules dans toutes les feuill
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2006, 09h44
  4. bizarerie dans toutes les requetes
    Par zais_ethael dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/03/2006, 21h28
  5. Comment MAJ le même champ présent dans toutes les tables ?
    Par PamelaGeek dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/02/2006, 14h06

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