Format Textbox à la saisie

cathodique

XLDnaute Barbatruc
Bonsoir:),

Je voudrais imposer un format à la saisie dans une textbox qui représente un numéro siret.
Ex: xxx xxx xxx xxxxx (3 chiffres espace 3 chiffres espace 3 chiffres espace 5 chiffres).
Les espaces se rajoutent automatiquement.

C'est à dire si ce format n'est pas respecter la textbox ne perd pas le focus pour corriger.

Merci beaucoup.

Bonne soirée.
 

Pièces jointes

  • Format siret.xlsm
    17.4 KB · Affichages: 35

cathodique

XLDnaute Barbatruc
Bonjour le forum
Bonjour le fil
Bonjour cathodique ;)

Il est vrai que j'aurais du ouvrir un nouveau sujet de discussion en y plaçant un lien vers ce fil. Mais, je me suis dit que ce fil avait été vu par de nombreuses personnes forcément intéressées et je savais pertinemment qu'il continuerai à l'être (je ne me suis pas trompé au vu des internautes qui l'on lu)). Ton problème avait été résolu à l'époque et je me suis inspiré du fichier de job75 (que je salue au passage) pour réaliser d'autres formats personnalisés. Toutefois ces formats restaient (et c'est qui me chagrinait) dans la saisie unique du numérique. J'aurais voulu pouvoir en disposer pour y créer des saisies alphanumériques mais personne n'a apporté sa solution. Notre ami Patricktoulon (que je salue également au passage) a recréer, à sa façon, un fichier qui incorpore un masque génial de saisie et qui se trouve être universel. Encore merci à Patrick.
Bonne soirée à toutes & à tous
@+ Eric c
;) Mon expérience sur le forum: On a plus de chance d'avoir des retours en ouvrant une nouvelle discussion.

Bonne soirée.
 

patricktoulon

XLDnaute Barbatruc
bonjour
j'avais oublié l'anti filoutage pour les petits malins
a savoir :revenir avec la souris a une position caret(curseur) qui est exempté(interdite) normalement en rédaction
je viens de m'en rendre compte en mettant a jour mon datebox international
c'est donc fait pour celui ci aussi ;)
a moment perdu j’améliorerais le décalage pour les positions (mid ,chaine,x,plus de 1) comme dans ce cas présent " / "(3 caracteres)

VB:
Option Explicit
Private Sub Tsiret_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim Mask$, txt$, s&, longg&, plus&
    Mask = "XXX / XXX XX XX"
       If Tsiret = "" And KeyCode <> 8 And KeyCode <> 46 Then Tsiret = Mask
    txt = Tsiret.Value:    If txt = Mask Then Tsiret.SelStart = 0
    s = Tsiret.SelStart:
    longg = Tsiret.SelLength: If longg = 0 Then longg = 1
    plus = IIf(KeyCode < 96, 32, -48):
    Select Case KeyCode
    Case 96 To 105,65 to 90
        If s = Len(Mask) Then KeyCode = 0: Exit Sub
        If Mid(Mask, s + 1, 1) <> "X" Then KeyCode = 0: s = s + 1: Tsiret.SelStart = s: Exit Sub
        Mid(txt, s + 1, longg) = Chr(KeyCode + plus) & Mid(Mask, s + 2, longg - 1): KeyCode = 0
        Tsiret = txt: Tsiret.SelStart = IIf(InStr(1, Tsiret, "X") = 0, s + 1, InStr(1, Tsiret, "X") - 1)
    Case 8
        If s <> 0 Then Mid(txt, s, longg + 1) = Mid(Mask, s, longg + 1) Else Exit Sub
        Tsiret = txt: Tsiret.SelStart = s - 1: KeyCode = 0
        If txt = Mask Then Tsiret = ""
    Case 46
        If Tsiret = "" Then Exit Sub
        If longg = 0 Then longg = 1
        Mid(txt, s + 1, longg) = Mid(Mask, s + 1, longg)
        Tsiret = txt: Tsiret.SelStart = s: KeyCode = 0
        If txt = Mask Then Tsiret = ""

    Case 39: Tsiret.SelStart = s + 1
    Case 37: Tsiret.SelStart = s - IIf(s > 0, 1, 0)
    Case 13:    ' touche enter  fait ce que tu veux c'est la sortie
    Case Else: KeyCode = 0
    End Select
End Sub
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour le fil
De nouveau merci Patrick. Je ne suis pas parvenu à mettre des majuscules dans ton fichier. Les saisies restent en minuscules malgré la déclaration 65 To 90 ? A te lire.
Bonne journée à toi ainsi qu'à toutes & à tous
@+ Eric c
 

Discussions similaires

Réponses
12
Affichages
297
Réponses
3
Affichages
333

Statistiques des forums

Discussions
312 156
Messages
2 085 819
Membres
102 992
dernier inscrit
KOSTIC