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 et Modules de classe pour Excel 2010 et 2013 [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
    retraite
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraite
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Par défaut TextBox et Modules de classe pour Excel 2010 et 2013
    Bonjour à toutes et à tous,
    Je viens ici vous exposer une interrogation qui me permettra si une solution existe d’améliorer mes connaissances et de réduire le nombre de lignes de code.
    Voici l’énoncé du Problème :

    Sur une feuille Excel j’ai plusieurs TextBox

    TextBox1
    TextBox2
    TextBox3
    TextBox4
    TextBox5
    TextBox6
    TextBox7

    Pour chaque TextBox de la feuille le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Sub
     
    Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Sub
     
    Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Sub
    Ce code permet de saisir du texte en minuscule dans la TextBox et de le transformé simultanément en majuscule.

    Vous comprendrez qu’il est long et fastidieux de rentrer pour chaque TextBox ces trois lignes de code.
    Je me demande donc s’il n’existe pas une solution pour faciliter et améliorer le codage.
    Par exemple un module de classe qui ferait que chaque TextBox et nouvelles TextBox de la feuille Excel auraient une saisie en minuscule qui simultanément passe en majuscule.
    Débutant en Visual Basic même si j’ai un peu bidouillé avec VBA la création, l'utilisation et la rationalisation des modules de classe qui demandent bien plus de pratique ne sont pas à ma portée.

    Voilà pourquoi je m’adresse à vous.

    Merci d’avance à toutes et à tous
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A mettre dans le module du classeur pour que la proc soit exécutée à l'ouverture de celui-ci. Pour le test, tu peux la lancer comme une proc normale car elle ne demande pas d'arguments :
    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
     
    Dim Txt() As New Classe1
     
     
    Private Sub Workbook_Open()
     
        Dim TxtOLE As OLEObject
        Dim I As Integer
     
        For Each TxtOLE In Worksheets("Feuil1").OLEObjects
     
            If InStr(TxtOLE.Name, "TextBox") <> 0 Then
     
                I = I + 1
                ReDim Preserve Txt(1 To I)
                Set Txt(I).GroupeTxt = TxtOLE.Object
     
            End If
     
        Next TxtOLE
     
    End Sub
    A mettre dans le module de classe que tu aura au préalable ajouté au projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public WithEvents GroupeTxt As MSForms.TextBox
     
    Private Sub GroupeTxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Homme Profil pro
    retraite
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraite
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Par défaut
    Merci Hervé,

    je vais l'adapter et l'utiliser.

    Merci encore pour ton aide
    Cordialement

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

Discussions similaires

  1. [XL-2007] Module de Classe pour controle textbox
    Par RastaBomboclat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/05/2015, 18h10
  2. [XL-2007] Module de classe pour TextBox
    Par apt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/01/2012, 22h15
  3. [AC-2003] Module de classe pour changer le comportement de case à cocher
    Par Stef999 dans le forum IHM
    Réponses: 6
    Dernier message: 18/10/2011, 08h16
  4. créer un module de classe pour gérer un textbox
    Par Cybernard dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/06/2010, 18h48
  5. Importation de modules depuis Access pour Excel
    Par ComfortablyNumb dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/09/2008, 13h57

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