Problème VBA Condition de saisie TexteBox

  • Initiateur de la discussion Initiateur de la discussion gauze001
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gauze001

Guest
Bonjour à tous,

Je réalise actuellement une application pour gérer les amortissements d'une société et j'ai un problème.

J'ai une TextBox dans laquelle doit être inscrite le Code de l'Immobilisation qui sera ensuite ajouté dans une autre feuille par le bouton "ajouter". Or je voudrais que pour que le Code soit ajouté il faut que la saisie ait respecté les conditions suivantes:

- Texte sur 8 caractères max
- Permettant d’utiliser des lettres et des chiffres et seulement cela (pas de symbole ou de ponctuation).
- Les lettres seront obligatoirement en majuscules. Les espaces ne sont pas autorisés en début de code ni au milieu.
- Toutefois le code peut faire moins de 8 caractères.

Merci d'avance,

Gauze001
 
Re : Problème VBA Condition de saisie TexteBox

Bonsoir gauze001 et bienvenue sur le forum.

Je te conseille vivement de lire la Lien supprimé et tu verras qu'il est plus que formtement recommandé de joindre un fichier exemple pour avoir une réponse adaptée.

Cependant, ta demande me semble dans un premier temps pouvoir être satisfaite "à la volée". Voici donc un code à mettre dans ton USF et qui devrait répondre à ta demande.
VB:
Private Sub TextBox1_Change()
    Dim t As String
    Me.TextBox1 = UCase(Me.TextBox1)
    If Len(Me.TextBox1) > 8 Then Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 1)
    Select Case Right(Me.TextBox1, 1)
        Case "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", _
            "S", "t", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
        Case Else
            Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 1)
    End Select
End Sub

A+
 
Re : Problème VBA Condition de saisie TexteBox

Bonsoir gauze001, et bienvenue à toi,

Voici un fichier exemple avec saisie contrôlée dans le textbox. Clique sur Test pour voir le résultat.
La longueur maxi de 8 caractères est contrôlée par la propriété Maxlength du textbox.

Tu peux saisir les caractères alphanumériques indifféremment en minuscules ou majuscules.

Pour info :

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
  Case 48 To 57, 65 To 90
  Case 97 To 122
    KeyAscii = KeyAscii - 32
  Case Else
    Cancel = True
    KeyAscii = 0
End Select
End Sub

Espérant avoir répondu.

Cordialement.

Edit : Bonsoir Fred0o
 

Pièces jointes

Re : Problème VBA Condition de saisie TexteBox

Tout d'abord, merci pour cet accueil chaleureux 🙂 et merci pour vos réponse!

Je transmet mon fichier exemple pour info vous verrez que j'ai déjà fais la limite à 8 caractères et les majuscules, toutefois c'est pour les espaces et les signes de ponctuation que cela pose problème.

Je pense toutefois que la réponse de Fredoo est mieux adaptée à mon problème.

Cordialement,

Gauze001
 

Pièces jointes

Re : Problème VBA Condition de saisie TexteBox

Bonjour gauze001,

Ci-joint ton fichier complété.

Tu pourras constater que tu n'est pas obligé de passer en mode Verrouillage Majuscules pour entrer du texte : la macro se charge de le faire automatiquement.

Cordialement.
 

Pièces jointes

Re : Problème VBA Condition de saisie TexteBox

Bonjour,

En faite je n'ai pas réussi à intégrer la formule de Fred0o dans mon bouton car je crois que je me perd dans les multiple If Then Else. Pouvez vous m'aider?

Mon fichier exemple est joint au message précédent...

Merci d'avance

Cordialement,

Gauze001
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour