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

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 (20 à 25 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

Voici un exemple de fichier

Bonjour

A tester (vive les archives )

Bonjour et merci à toi pour cette aide

mais j'ai un PB (explicit surligné)

option explicit

donne :

erreur de compilation:

instruction incorrecte à l'extérieur d'une procédure

oprion explicit

Private Sub Workbook_Open()
Dim Nb As Integer
Dim Ctrl As OLEObject

  For Each Ctrl In Feuil1.OLEObjects
    If TypeOf Ctrl.Object Is MSForms.TextBox Then
      ReDim Preserve TBox(Nb)
      Set TBox(Nb).B64 = Ctrl.Object
      Nb = Nb + 1
    End If
  Next Ctrl
End Sub

Bonjour

Erreur de syntaxe

C'est Option Explicit

Instruction rajoutée en dernier et pas testé après

Merci Banzai64

ce code fonctionne.

je vais l'essayer et l'adapter à mes fichiers et surtout essayer de le décrypter et de le comprendre afin de l'assimiler.

Merci à toi

Rechercher des sujets similaires à "textbox modules classe 2010 2013"