STOP à 15 caractères !

T

thombar

Guest
Bonjour, y a t'il un moyen pour que dans une plage de cellule, on limite la saisie à 15 caractères dans chacune d'elles.

De façon plus précise :
Pour que rien n'apparaisse lorsque l'on veut entrer le seizième caractère dans la cellule active... que le curseur n'avance plus.

merci de votre aide !!!
 
E

Eric C

Guest
Bonjour le forum
Bonjour thombar, Pascal (Les vacances étaient bonnes ? - @ + sur le T'Chat)


Un peu tiré par les cheveux mais bon, en fait tu entres le nombre de caracères que tu veux mais le code va supprimer de la cellule tout ce qui se trouve après 15 caractères.
Dans le module de ta feuille
Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Activate
Target.Value = Mid(Target, 1, 5)
End With
End Sub


@ ++ Eric C
 
Y

yvon51

Guest
bonjour à tous

voila une application qui m'a été communiquée il y a un bout de temps par Pascal76 si mes souvenirs sont bons.
cela fonctionne très très bien.



Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("C16:C37")) Is Nothing Then Target = Mid(Target, 1, 40)
If Not Intersect(Target, Range("A16:A37")) Is Nothing Then Target = Mid(Target, 1, 25)
If Not Intersect(Target, Range("B16:B37")) Is Nothing Then Target = Mid(Target, 1, 25)
If Not Intersect(Target, Range("M16:M37")) Is Nothing Then Target = Mid(Target, 1, 14)
Application.ScreenUpdating = False

End Sub

à plus tard
yvon
 
T

thombar

Guest
ReBonjour,

Merci pour vos réponses, mais je connaissais plus ou moins ces méthodes,
qui ne répondent pas tout à fait à ce que je recherche (peut-être parceque ce que je recherche est impossible à faire ?!).

En plus clair je souhaite que la saisie s'arrête à 15 caractères PENDANT la saisie d'un mot dans une cellule (que le curseur n'avance plus...).

Et non pas : réduise le texte à 15 caractères après avoir validé par la touche entrée.....

Merci de votre aide.
 
J

jmps

Guest
Bonjour thombar, le fil.

Dans la mesure où il n'y a pas d'évènement associé à la frappe des touches dans une feuille, ton problème me parait difficile voire impossible à résoudre.
Peut-être en faisant une macro en boucle qui teste la longueur de la cellule active ? Mais je me demande ce que ça pourrait avoir comme conséquences sur les temps de réponse d'Excel puisqu'il faudrait tester toutes les 5 à 10 millisecondes à peu près (Y'a des gens qui tapent vite :°)

Je ferai un test un peu plus tard dans la soirée et tu auras ma réponse ce soir ou demain matin.

Bonne soirée à tous.

José
 
J

jmps

Guest
Re- thombar et le fil,

Bon, j'ai la réponse un peu plus tôt que prévu.
Apparement, pendant l'édition d'une cellule, l'exécution de ma macro qui boucle est interrompue. Donc pas de contrôle de la longueur possible en cours d'édition.
Mon résultat est le même que ceux d'yvon51, Eric C et Pascal76...

Désolé de pas pouvoir t'aider plus.

Re-bonne soirée à tous.

José
 
@

@+Thierry

Guest
=> DEMO STOP à 5 caractères ! (c'est plus facile 5 que 15 pour tester !!! (lol)

Bonsoir à tous et toutes

Vite fait, juste pour notre slogan :

 Impossible ???
    => NOT XLD COMPLIANT !!!! (lol)


Hi hi hi ....

Bonne Soirée
@+Thierry
 

Pièces jointes

  • XLD-Max-5-Digits-in-Cells.zip
    26.2 KB · Affichages: 26
  • XLD-Max-5-Digits-in-Cells.zip
    26.2 KB · Affichages: 24
  • XLD-Max-5-Digits-in-Cells.zip
    26.2 KB · Affichages: 27
J

jmps

Guest
Je surenchéri à 7 caractères (Pour voir)

Re le fil,

@+Thierry, tu es un coquinou. Mais sacrément doué quand même. Maximum respect !

J'avais pensé à la solution des TextBox mais figure toi que dans la panique du retour imminent à la maison (Ranger les crayons de couleur dans la boîboîte, jeter les canettes dans la corbeille, finir la pizza de midi, LOL !), j'ai pô trouvé le bouton TextBox dans ma barre VB. Et comme un idiot-bête que je suis, j'ai pas pensé à appuyer sur le bouton Mode création... Ha la la ! Le petit scarabée à encore quelques kilomètres de code à taper (Et à lire LOL !) avant de t'arriver aux chevilles. Qui je le rappelle se comptent par douzaines chez toi puisque tu n'es pas de notre galaxie ni même de notre univers :°))

Moi je dis :
Caaaapitaine @+Thierry
Tu n'est paaaas
De notre galaaaaaxiiie !

Et en plus ça rime mieux que l'original :&deh;)

You rock @+Thierry !

Bonne soirée à tous.

José

PS : Même si c'est pour le fun, ça peut aider notre ami thombar. Si y'a pas de calculs à faire, c'est nickel pour lui... Et pour d'autres dans le futur...
Au fait, tu viendrais pas du futur d'une autre galaxie avec tes X(LD)-Files par hasard ?
 
S

salim

Guest
Bonsoir le Fil et le Forum


smiley_590.gif
Mais d'où vient il ?.

@+ Salim
 
Y

yeahou

Guest
Bonjour à tous

Trés sympa, ton fichier, Thierry !
voici une proposition de modification qui permet de revenir dans une cellule déja saisie pour la modifier sans que la valeur déja saisie soit effacée. Le fonctionnement est le même, plus qu'à trouver comment passer le focus à la textbox suivante avant les 5 caractères en appuyant sur enter, si tu sais comment faire dans une [censuré] de feuille, je suis preneur. Pour la modification, j'ai juste utilisé la propriété maxlenght des textbox.

Cordialement, A+
 
@

@+Thierry

Guest
Salut Yeahou, José, Salim, Mulder et Skeuly, Thombar, Pascal, Yvon, Eric, !! lol et le Forom !!!

Oui José j'adore m'amuser en travaillant et je pense que c'est comme ceci qu'on travaille le mieux, et pour Yeahou c'est super d'avoir des proposition d'amélioration, en tant que vieux crouton du Forum, en tout cas je suis content de m'amuser avec vous deux en ce moment, fun and serious !

J'ai fait ceci dans des UserForms (la Touche Enter pour passer de TextBox en TextBox), laisse moi juste retrouver le Fil / Démo...

En attendant Yeahou, très bien vu le MaxLength.... j'espère juste que tu t'es pas tapé 50 fois le cinq dans la Propriété MaxLength de chacune des 50 textBox... Sinon tu vas être vert en testant çà :

Sub TxbMaxLength()
Dim CTRL As OLEObject
For Each CTRL In Sheets("LOL").OLEObjects
If CTRL.ProgId = "Forms.TextBox.1" Then
CTRL.Object.MaxLength = 6
End If
Next CTRL
End Sub


LOL !!! 'd'ailleurs il faut la mettre dans le module "SpecialTool" que j'appelerais aussi "SpecialCorse" lol (hein Pat?)

Bon je regarde pour la touche [enter] in the 4ème dimension !!!!
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 300
Messages
2 087 006
Membres
103 429
dernier inscrit
PhilippeH