XL 2016 textbox formulaire de saisie

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 !

PETIT YANNICK

XLDnaute Occasionnel
Bonjour,

Je cherche a imposer la saisie de la variable ODM- et 5 chiffres (ex:ODM-12345) dans une textbox de formulaire excel
La variable ODM- ne change pas.
Par contre les 5 chiffres évoluent.

Est t'il possible de préécrire dans la text box6 de mon fichier : ODM- en dur et de forcer la saisie de 5 chiffres.
Il faudrait également permettre un copier coller de 5 chiffres.

Pour lancer le formulaire Ctrl+MAJ+A

Merci par avance
 

Pièces jointes

Re
Le même Ficher modifier(Saisie)
on pourrait soit inibe l'enregistrement si Numero non conforme
VB:
Private Sub CommandButton2_Click()
With Me
If Len(.TxtB_Num) <> 5 Or .TxtB_Num = "00000" Then Exit Sub 'Ici on quitte si pas 5 chiffres valides
     MsgBox .Lbl_ODM & .TxtB_Num 'Pour l'exemple
End With
End Sub
ou n'afficher le Bouton Enregistrer que lorsque le TxtB_Num est conforme
jean marie
 

Pièces jointes

Dernière édition:
bonjour
je te propose un tout en un
tu ne peux enlever le prefixe tu ne peux pas taper autre chose que les 5 chiffres et ne peux depasser les 9 caracteres
exemple
VB:
Private Sub TextBox1_Change()
    Dim prefixe$
    prefixe = "ODM-"
    With TextBox1
        .MaxLength = 9
        If Not .Value Like prefixe & "*" Then .Value = prefixe
        If Not IsNumeric(Mid(.Value, Len(prefixe) + 1)) Then .Value = prefixe
    End With
End Sub
ces deux seules lignes t’empêche
  1. de modifier le préfixe
  2. de supprimer le préfixe par erreur
  3. taper autres chose que tes 5 chiffres

essaie tu verra 😉
 
Dernière édition:
re

explication dans commentaires
VB:
Private Sub TextBox1_Change()

    Dim prefixe$
    prefixe = "ODM-" 'ca c'est ton préfixe qui ne doit pas bouger

    With TextBox1

        .MaxLength = 9' la longueur max  de la chaîne dans le textbox

     
 'si le textbox ne commence pas par le préfixe (et quelque chose ou rien)alors = prefixe    
if Not .Value Like prefixe & "*" Then .Value = prefixe

  

If Not IsNumeric(Mid(.Value, Len(prefixe) + 1)) Then .Value = prefixe
  'si la partie après le préfixe est non numérique alors  textbox=prefixe

End With

End Sub
ce qui fait que
situ essaie de modifier le prefixe dans le textbox ben ca te remet le prefixe
si tu tape autre chose que des chiffre apres prefixe ben ca te remet prefixe
 
Bonjour Patrick toulon
Je souhaiterais avoir un message box "renseigner 5 chiffres" si l'on essaye de renseigner un caractère autre que des chiffres. en plus de la valeur prefixe qui se réinitialise

Private Sub TextBox6_Change()
Dim prefixe$
prefixe = "ODM-"
With TextBox6
.MaxLength = 9

If Not .Value Like prefixe & "*" Then .Value = prefixe
If Not IsNumeric(Mid(.Value, Len(prefixe) + 1)) Then .Value = prefixe AND MsgBox "MsgBox N° ODM ne doit comporter 5 chiffres.""


End With
End Sub

Comment écrit ton le AND pour avoir 2 résultat pour une conditiondans une condition?
Merci
 
Patrick toulon
Si j'intègre le code que tu m'as fournit au bouton Private Sub CommandButton2_Click() les conditions ne fonctionne plus.
Ton code est en rouge

Comment faut t'il déclaré le boutonCommandButton2?

Merci de ton retour




Private Sub CommandButton2_Click()


'Renseignement Manufacturer


Range("G4").Value = TextBox1
Sheets("Feuil1").Range("G4").Value = UCase(TextBox1.Text)

Unload Me

'Renseignement Reference manufacturer

Range("G5").Value = TextBox2
Sheets("Feuil1").Range("G5").Value = UCase(TextBox2.Text)




'Renseignement Description article


Range("G3").Value = TextBox3
Sheets("Feuil1").Range("G3").Value = UCase(TextBox3.Text)

Unload Me


'Renseignement designation FR


Range("G25").Value = TextBox4
Sheets("Feuil1").Range("G25").Value = UCase(TextBox4.Text)
If Len(TextBox4) = 30 Then MsgBox " Nombre de 30 caractères atteint!"

Unload Me

'Renseignement designation UK


Range("G26").Value = TextBox5
Sheets("Feuil1").Range("G26").Value = UCase(TextBox5.Text)
If Len(TextBox5) = 30 Then MsgBox " Nombre de 30 caractères atteint!"

Unload Me

'Renseignement N° ODM

Dim prefixe$
prefixe = "ODM-"
With TextBox1
.MaxLength = 9
If Not .Value Like prefixe & "*" Then .Value = prefixe
If Not IsNumeric(Mid(.Value, Len(prefixe) + 1)) Then .Value = prefixe
End With

Unload Me


End Sub


Faut t'il déclaré le bouton autrement que private sub



Au déclenchement d'un bouton CommandButton2_ il faut que je renseigne TextBox1 …..TextBox6
 

Pièces jointes

Bonjour PETIT YANNICK
Bonjour le Fil(Patrick), le Forum
Patrick(sans pretention lol)
ne pourrait on mettre
VB:
if Not .Value Like prefixe & "#####"
'plutôt que
if Not .Value Like prefixe & "*"
j aime beaucoup ce que tu fais ou as fait, ici ou ailleurs lol
jean marie
 
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
684
Retour