Saisie forcée en MAJUSCULE

  • Initiateur de la discussion Initiateur de la discussion Eric Dé
  • 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 !

Eric Dé

XLDnaute Occasionnel
Bonjour,

J'ai une macro qui utilise une "Inputbox" et je souhaiterais que la saisie soit d'office en majuscule.

Est-il possible de faire "commuter" le clavier automatiquement pour ne pas avoir à passer systématiquement par le clavier

Merci d'avance pour vos infos.

Eric
 
Re : Saisie forcée en MAJUSCULE

salut Eric.

Si ton input box est nommé textBox1, essaie un peu ceci :

Private Sub textBox1_keyPress(ByVal keyAscii As MSForms.ReturnInteger)

keyAscii = Asc(UCase(Chr(keyAscii)))

End Sub
 
Re : Saisie forcée en MAJUSCULE

Bonjour Eric, Delors,

En effet on ne peut pas modifier la casse dans une InputBox.

Par contre dans une UserForm, voir le fichier ci-joint.

La macro toute simplette :

Code:
Private Sub TextBox1_Change()
TextBox1 = UCase(TextBox1)
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : Saisie forcée en MAJUSCULE

Merci Delors pour ta réponse.

Il semble que je ne fasse pas comme il faut !

Je te donne un extrait du code composant la macro pour que tu puisses me dire où placer tes codes :

'== ENTREE DU NUMERO D'EMPLACEMENT ==

New_Emplace = InputBox _
("Numéro de l'emplacement ?", _
"Emplacement", _
Emplace, 2)
ActiveCell.Value = New_Emplace
ActiveCell.Offset(0, 1).Activate


Merci,
Eric
 
Re : Saisie forcée en MAJUSCULE

Re,

Je comprends qu'il s'agit d'entrer des chiffres (et pas des lettres majuscules...).

Ecrire donc dans le code de l'UserForm :

Code:
Private Sub CommandButton1_Click()
ActiveCell = TextBox1
ActiveCell.Offset(0, 1).Select
Unload UserForm1
End Sub

Private Sub TextBox1_Change()
Dim Tablo1, Tablo2, i As Byte
Tablo1 = Array("&", "é", """", "'", "(", "-", "è", "_", "ç", "à")
Tablo2 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
For i = 0 To 9
TextBox1 = Replace(TextBox1, Tablo1(i), Tablo2(i))
Next
End Sub

Il y a peut-être plus simple.

A+
 

Pièces jointes

Re : Saisie forcée en MAJUSCULE

Merci pour ton tuyau job75.

Je pense que je pourrai faire quelque chose avec ton idée.

En fait, même les lettres minuscules doivent devenir des majuscules. Je pense alors qu'il suffit de faire concorder les minuscules aux majuscules dans les parenthèses des "Array".

@+
Erc
 
Re : Saisie forcée en MAJUSCULE

Re,

Pour avoir en plus des majuscules pour les lettres, écrire en effet la 2ème macro :

Code:
Private Sub TextBox1_Change()
Dim Tablo1, Tablo2, i As Byte
[COLOR="Red"]Tablo1 = Array("&", "É", """", "'", "(", "-", "È", "_", "Ç", "À")[/COLOR]
Tablo2 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
For i = 0 To 9
TextBox1 = Replace([COLOR="Red"]UCase(TextBox1)[/COLOR], Tablo1(i), Tablo2(i))
Next
End Sub

A+
 
Dernière édition:
Re : Saisie forcée en MAJUSCULE

Bonjour Eric, le forum,

Ce qui précède est intéressant bien sûr, mais en cherchant, j'ai trouvé comment activer/désactiver la touche VERR.MAJ.

Voici donc le fichier et la macro avec InputBox :

Code:
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type

Dim kbArray As KeyboardBytes

Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

Sub Numéro()

'---VERR.MAJ activée---
kbArray.kbByte(&H14) = 1
SetKeyboardState kbArray
    
New_Emplace = InputBox("Numéro de l'emplacement ?", "Emplacement", , 2)
ActiveCell.Value = New_Emplace
ActiveCell.Offset(0, 1).Select

'---VERR.MAJ désactivée---
kbArray.kbByte(&H14) = 0
SetKeyboardState kbArray
        
End Sub

Edit : évidemment l'utilisateur peut toujours désactiver la touche VERR.MAJ pendant la frappe, alors que l'autre solution impose les chiffres et les majuscules.

A+
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
3
Affichages
219
Retour