Limiter caractères dans cellule

Borman

XLDnaute Nouveau
Bonjour,

J'ai bien limité à 20 caractères maxi mes cellules, mais rien ne m'averti avant la fin de la saisie que je les ai dépassé.

Est-il possible d'interdire la saisie, ne plus prendre en compte la frappe au delà des 20 caractères dans une cellule ?

Merci par avance.

Borman.
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Bonjour,

Le plus facile c'est de sélectionner votre cellule ici A2.
Ensuite aller dans le menu "Données" ensuite "validation".
Choisir valider :"Personnalisé" et comme formule mettre(par exemple) :
=SI(NBCAR(A2)>20;"erreur!";A2)

ou pour mettre juste 20 pas un de plus ni de moins

=SI(OU(NBCAR(A2)>20;NBCAR(A2)<20);"erreur";A2)

:p
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Bonjour à tous


On peut aussi choisir (d'autant plus que c'est prévu) dans Données Validation:
Autoriser/Longueur du texte
Minimum:1
Maximum:20
Et mettre un message en allant dans l'onglet Alerte d'erreur (y remplir les champs idoines)
PS: Test OK
 

Borman

XLDnaute Nouveau
Re : Limiter caractères dans cellule

Bonjour à tous


On peut aussi choisir (d'autant plus que c'est prévu) dans Données Validation:
Autoriser/Longueur du texte
Minimum:1
Maximum:20
Et mettre un message en allant dans l'onglet Alerte d'erreur (y remplir les champs idoines)
PS: Test OK

Bonjour et merci. C'est exactement ce que j'ai fait. Si dépassement, je suis alerté, mais pas "interdit" de dépasser les 20 caractères lors de la saisie. Or c'est exactement ce que je cherche à faire, ne plus pouvoir écrire au delà de 20.

En tout cas merci pour votre réponse.
Borman.
 

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Bonjour à tous

Borman
Tu as bien choisi ceci? Style=Arrêt
ddvalid.png
Avec ce choix la saisie n'est pas possible.
 

excfl

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Bonjour le forum,

J'ai bien limité à 20 caractères maxi mes cellules, mais rien ne m'averti avant la fin de la saisie que je les ai dépassé.

Est-il possible d'interdire la saisie, ne plus prendre en compte la frappe au delà des 20 caractères dans une cellule ?

Peut-être avec du VBA ?

Possible avec un shockwave mais non exploitable.

Autre fichier joint : limitation par VBA à 20 caractères les saisies dans la colonne A. Equivalant des solutions déjà proposées et qui donc ne répond pas à ton problème.

excfl
 

Pièces jointes

  • Limitation nbre caractères.xlsx
    12.3 KB · Affichages: 49
  • nbre caractères maximum.xlsm
    15 KB · Affichages: 41
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Re

Sauf qu'au final avec Données/Validation la cellule ne pourra jamais contenir plus 20 caractères.
Donc il suffit de saisir une fois plus de 20 caractères pour ensuite être averti et donc ne plus recommencer.
mais comme nous ne savons pas si Borman avait bien choisi Style=Arret
Wait and see

EDITION: Glané sur le net, mais le message ne s'affiche que lorsqu'on a dépassé 20 caractères.
Ce qui est peu ou prou la même chose que Données/Validation
(Données/Validation suffit dans ce cas, non sauf cas spéciaux comme copier/coller etc...)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'auteur code  d'origine: JBeaucaire
Dim cell As Range, MyStr As String, Ans As String
If Not Intersect(Target, Columns("A")) Is Nothing Then
    For Each cell In Intersect(Target, Columns("A"))
        If Len(cell.Value) > 20 Then
             MyStr = cell
             Do
                Ans = Application.InputBox("Cette cellule ne peut contenir plus de 20 caractères, contrôlez votre saisie.", _
                    "Limitation nombre de caractères", MyStr, Type:=2)
                If Ans = "False" Then
                    'Loop will restart
                ElseIf Len(Ans) <= 20 Then
                    cell = Ans
                    Exit Do
                Else
                    MyStr = Ans
                End If
            Loop
        End If
    Next cell
End If
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Re

Victor21
Dans ce cas, j'ajouterai
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count=1 Then
    Target = Mid(Target, 1, 20)
End If
End Sub

Mais personnellement, je suis l'utilisateur final, je préfère éviter le VBA et passer par Données/Validation.
(Si la saisie est normée, à moi d'être en capacité de respecter les normes de saisie de mes données ;) )
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Re

Vincent21*
Je viens de tester ton code dans ces conditions
Selection A1:A10
en A1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
puis CTRL+ENTREE
et zou on a plus de 20 caractères dans les cellules.
Caramba! On est fait !

*: private joke bis
 

Staple1600

XLDnaute Barbatruc
Re : Limiter caractères dans cellule

Re

En cherchant toujours en encore dans l'existant (une idée de Mike Erickson)
Utiliser un userform pour compter les caractères
(Dans l'userform une TextBox et un Label qui recouvre parfaitement la TextBox)
Code VBA:
'Dans l'userform
Private Sub TextBox1_Change()
Range("a1") = UserForm1.TextBox1.Text
UserForm1.Label1.Caption = Len(Range("a1"))
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Unload Me
End Sub

Code VBA:
'Dans le code de la feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
UserForm1.TextBox1.Value = CStr(Range("a1"))
UserForm1.Show
Else
Unload UserForm1
End If
End Sub

Borman
Voir si cela peut t'être utile, et donc adapter en conséquence.

PS: excfl: j'ai pas compris les 2 croissants ;)
 
Dernière édition:

Discussions similaires

Réponses
18
Affichages
707

Statistiques des forums

Discussions
312 379
Messages
2 087 769
Membres
103 662
dernier inscrit
rterterert