problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel 2010

Bambi35

XLDnaute Occasionnel
Bonjour


Comment limiter le nombre de caractère dans une cellule fusionné d’Excel 2010
Dés le nombre atteint les touches sont bloquée et non une alerte.
Merci à tous

Exemple cellule Maxi 15 caractères sans message d'erreur

NB:
J'ai testé Validation des données
Longueur de texte mais rien



Merci
 

Pièces jointes

  • Demande d'Achat.xls
    40.5 KB · Affichages: 105

job75

XLDnaute Barbatruc
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonsoir Bambi35,

Quand on tape des caractères dans une cellule (donc en mode édition) on ne peut rien contrôler.

Un point c'est tout, il faudrait se le mettre dans la tête :rolleyes:

On peut par contre agir quand on valide la frappe, grâce à l'événement Change.

Ou bien sûr par la validation de données...

A+
 

Bambi35

XLDnaute Occasionnel
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonjour job75

Je suis désolé mais je ne comprends pas quand tu dis
"On peut par contre agir quand on valide la frappe, grâce à l'événement Change.
Ou bien sûr par la validation de données..".


Merci encore
 

job75

XLDnaute Barbatruc
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonjour Bambi35,

Il s'agit de programmation Visual Basic (VBA).

L'événement Change se crée quand les données d'une feuille de calcul sont modifiées.

Donc après validation.

Il déclenche automatiquement cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Le forum fourmille d'exemples.

A+
 

Roland_M

XLDnaute Barbatruc
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

bonjour à tous,

pour compléter job75
tu cliques droit sur l'onglet de ta feuille et tu sélectionnes "visualiser le code"
et tu places le code ci-dessous
(si c'est bien les cellules en question fusionnées ! la première étant F36)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$36" Then
   If Len(Target) > 15 Then Target = Left(Target, 15)
End If
End Sub
 

Bambi35

XLDnaute Occasionnel
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonjour
Voici les cellules ainsi que le nb
D5 => 18
I5 => 16
C29 => 18
I29 => 16
C30 => 47
B31 => 38
Fichier joint

Merci
 

Pièces jointes

  • Demande d'Achat1.xls
    58.5 KB · Affichages: 98

job75

XLDnaute Barbatruc
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonjour Bambi35, Roland_M,

Pour éviter de recopier 6 fois le même code, le plus simple est d'utiliser 2 tableaux :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a1, a2, i
a1 = Array("D5", "I5", "C29", "I29", "C30", "B31")
a2 = Array(18, 16, 18, 16, 47, 38)
i = Application.Match(Target.Address(0, 0), a1, 0)
If IsNumeric(i) Then If Len(Target) > a2(i - 1) _
  Then Target = Left(Target, a2(i - 1))
End Sub
Edit : salut JHA

A+
 
Dernière édition:

Bambi35

XLDnaute Occasionnel
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Bonjour JHA

Merci pour ta réponse,
Mais je ne veux pas avoir se message qui risque d'être répétitif lorsque les personnes vont remplir le formulaire

Bambi35
 

Bambi35

XLDnaute Occasionnel
Re : problème pour limiter le nombre de caractère dans une cellule fusionné d’Excel

Re, job75

Désolé pour ce mal entendu cela fonctionne.

Mais une question il n'est pas possible que lors de la frappe le 19 ème caractère de la cellule D5 ne s'affiche pas
pour éviter que les personnes tapent le texte et remarque que seul les 18 premier caractères soit enregistrés

@+
 

Discussions similaires