Autres (RESOLU)saisie restrinte dans des cellules

chaelie2015

XLDnaute Accro
Bonsoir FORUM
Je souhaite avoir dans une cellule format "Nombre"&"T"&"espace "&"ANNÉE" afin de limiter la saisie dans la cellule.
NB: "Nombre" est limité entre 1 et 4
"ANNEE"(AAAA) : 2020
Exemple : dans une cellule fusionnée (quelconque) "B7:D7" je dois saisir par exemple 2T 2020
si je saisis 4T2020 format non valable parce que il y a pas d'espace entre "T" et "ANNÉE"
Merci par avance
 

job75

XLDnaute Barbatruc
Bonsoir chaelie2015, eriiiic,
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [B2:D10000], UsedRange) 'plage à adapter
If Target Is Nothing Then Exit Sub
Dim tablo, i&, x$, n As Byte
For Each Target In Target.Areas 'si entrées ou effacements multiples
    tablo = Target.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        x = CStr(tablo(i, 1))
        If x <> "" Then
            n = Val(Left(x, 1))
            If Not x Like "#T ####" Or n = 0 Or n > 4 Then
                Application.EnableEvents = False
                Application.Undo 'annule les entrées
                Application.EnableEvents = True
                Exit Sub
            End If
        End If
Next i, Target
End Sub
A+
 

Pièces jointes

  • Trimestre(1).xlsm
    179.2 KB · Affichages: 22

chaelie2015

XLDnaute Accro
Bonsoir chaelie2015, eriiiic,
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [B2:D10000], UsedRange) 'plage à adapter
If Target Is Nothing Then Exit Sub
Dim tablo, i&, x$, n As Byte
For Each Target In Target.Areas 'si entrées ou effacements multiples
    tablo = Target.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        x = CStr(tablo(i, 1))
        If x <> "" Then
            n = Val(Left(x, 1))
            If Not x Like "#T ####" Or n = 0 Or n > 4 Then
                Application.EnableEvents = False
                Application.Undo 'annule les entrées
                Application.EnableEvents = True
                Exit Sub
            End If
        End If
Next i, Target
End Sub
A+
Bonsoir JOB
Merci pour le code; si je saisi 5T 2020 il l'accepte ?
mème 4T2020 ( sans espace entre T et l'année) il l'accepte ??
merc
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs