Microsoft 365 Limiter les caractères autorisés dans une cellule

GuiDUG

XLDnaute Nouveau
Bonjour

Je voudrais que dans une cellule on ne puisse saisir que des chiffres (0, 1, 2 , 3, 4, 5, 6, 7, 8 ,9) ou "-", et que toute saisie d'un autre caractère ne soit pas considérée.

Par exemple, dans la cellule :
-la saisie de "1569-48" serait autorisé.
-la saisie de "3,9-az-" serait corrigé en "39--"
 

job75

XLDnaute Barbatruc
Bonsoir GuiDUG,

Voyez le fichier joint et cette macro évènementielle dans le code de la feuille :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, i&, x$, j%, y$
With UsedRange.Columns(1)
    tablo = .Resize(, 2).Formula 'matrice, plus rapide, au moins 2 éléments
    For i = 2 To UBound(tablo)
        x = tablo(i, 1)
        For j = Len(x) To 1 Step -1
            y = Mid(x, j, 1)
            If Not IsNumeric(y) And y <> "-" Then x = Left(x, j - 1) & Mid(x, j + 1)
        Next j
        tablo(i, 1) = x
    Next i
    '---restitution---
    Application.EnableEvents = False 'désactive les évènements
    .Value = tablo
    Application.EnableEvents = True 'réactive les évènements
End With
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    16.5 KB · Affichages: 11

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 812
dernier inscrit
jocelyne86360