Forcer l'écriture alphabétique dans une textbox
p
Bonjour à tous,
Je fais appel à vos méthodes pour forcer l'écriture alphabétique dans une textbox.
J'ai un USF qui fonctionne bien, sauf que à l'utilisation je me suis aperçu que des utilisateurs ne rentraient pas correctement le nom de l'opérateur, ils rentrent leur code identifiant (ex: Z854).
Je souhaiterai par codage les forcer à rentrer le nom
Ci dessous le code de l'USF
Private Sub CommandButton_Valider1_Click()
Application.ScreenUpdating = False
'Activation de la feuille de recueil
Worksheets("Recueil données").Activate
'Détermine la première ligne vierge sous le tableau
no_lignes = Range("A" & Rows.Count).End(xlUp).Row + 1
'Copier la dernière ligne pour formater le remplissage
Rows(no_lignes).Select
Selection.FillDown
'Remplir les cellules avec les valeurs des ComboBox et TextBox
Cells(no_lignes, 1) = Date
Cells(no_lignes, 2) = ComboBox_Section.Value
Cells(no_lignes, 3) = ComboBox_Auditeur.Value
Cells(no_lignes, 4) = ComboBox_Poste.Value
Cells(no_lignes, 5) = TextBox_Operateur.Value
'Ouvrir le questionnaire suivant
Questionnaire1_Sécu.Show
'Fermer l'USF Formulaire
Unload Me
End Sub
Private Sub userForm_Initialize()
'Incrémantation de la date
Label8.Caption = Date
'Ajout des valeurs des cellules A1 à Y1 de l'onglet "Sections-Auditeurs"
For i = 1 To 25 'Liste des sections
ComboBox_Section.AddItem Worksheets("Sections-Auditeurs-Machines").Cells(1, i)
Next
no_lignes = 0
End Sub
Private Sub ComboBox_Section_Change()
'Zone de liste vidée (sinon les valeurs s'ajoutent)
ComboBox_Auditeur.Clear
ComboBox_Poste.Clear
Dim no_section As Integer, nom_auditeur As Integer, no_poste As Integer
'Numéro de la sélection "section" (ListIndex commence à 0)
no_section = ComboBox_Section.ListIndex + 1
'Nom des auditeurs de la colonne section choisie
nom_auditeur = Worksheets("Sections-Auditeurs-Machines").Cells(1, no_section).End(4).Row
'Nombre de lignes poste de la colonne section choisie
no_poste = Worksheets("Sections-Auditeurs-Machines").Cells(6, no_section).End(xlDown).Row
For i = 2 To nom_auditeur
ComboBox_Auditeur.AddItem Worksheets("Sections-Auditeurs-Machines").Cells(i, no_section)
Next
For i = 6 To no_poste
ComboBox_Poste.AddItem Worksheets("Sections-Auditeurs-Machines").Cells(i, no_section)
Next
End Sub
Private Sub CommandButton_Annuler1_Click()
delete_form ("Formulaire")
MsgBox "Etes-vous sûre de vouloir arrêter?", vbYesNo + vbQuestion
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub
Private Sub TextBox_Operateur_keyPress(ByVal keyAscii As MSForms.ReturnInteger) 'Force les MAJUSCULSES
keyAscii = Asc(UCase(Chr(keyAscii)))
End SubEn vous remerciant par avance
Cdt
p
Pour information
Le problème à été solutionné, sur un autre forum.
Toutefois pour ceux que ça peut intéresser voici le code à ajouter.
Private Sub TextBox_Operateur_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 48 To 57: KeyCode = 0
Case 96 To 105: KeyCode = 0
End Select
End SubCdt