> Tous les forums > Forum Bureautique
 une seule lettre dans la cellule dans plage B:FSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
vieuxmonsieur
  Posté le 06/02/2013 @ 14:32 
Aller en bas de la page 
Astucien

bonjour,

dans la plage B:F je ne veux pouvoir saisir qu'une seule lettre

pouvez-vous me dire si l'on peut que des qu'une lettre est saisie on passe a la cellule suivante, soit colonne B, C, D, E, F sur la meme ligne.

en vous remerciant



Modifié par vieuxmonsieur le 06/02/2013 15:54
Publicité
Brownie0169
 Posté le 06/02/2013 à 17:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Vieuxmonsieur

Selectionne ta plage, puis "Données", "validation", dans la boite de dialogue, onglet "options" autoriser "longueur du texte", puis "données comprises entre" et rentrer 1 sur "mini" et 1 sur "mini". Tu peux ensuite compléter pour le message de saisie et "alerte d'erreur" (arret, info, avertissement).

vieuxmonsieur
 Posté le 06/02/2013 à 17:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonsoir Brownie,

j'avais bien esseye cela mais je reste dans la cellule apres saisie alors que je voudrais me trouver automatiquement dans la cellule suivante

dans le champ A j'ai des noms renseignes

dans les champs B, C, D, E, F j'ai donc une lettre code par colonne, puis ca reprend ensuite H, I, J, K, l,



Modifié par vieuxmonsieur le 06/02/2013 23:32
Boogie Palace
 Posté le 06/02/2013 à 17:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'ai eu la même idée que Brownie0169 (avec une variante plus simple : longueur du texte égale à 1, plutôt qu'une fourchette).

le problème est que le contrôle de validation ne se fait qu'une fois que la saisie de la cellule est validée (avec Entrée ou Tabulation).
si j'ai bien compris la demande de vieuxmonsieur, la tabulation doit se faire après la saisie du premier (et seul autorisé) caractère, le second caractère tapé doit être saisi automatiquement dans la cellule suivante.

ça me semble difficile, car j'ai également cherché du côté des procédures évènementielles, mais même celle qui réagit à la saisie d'une cellule ("worksheet_Change") attend la validation de la saisie, on peut donc saisir autant de caractères qu'on veut, tant qu'on a pas validé la saisie.

y a aussi les textbox de formulaires, dont on peut limiter la longueur, mais je n'ai pas trouvé comment rendre la tabulation automatique, une fois le nombre maxi de caractères autorisé atteint.
autrement dit, je peux limiter la saisie à un seul caractère, et tout ce qui est tapé ensuite va dans le vent, mais il faut faire Entrée ou Tabulation pour passer à la textbox suivante.

bref, après trois fausses bonnes idées, je sèche.
mais j'ai pour principe de dire que "ce n'est pas parce que je ne sais pas faire un truc que ce n'est pas possible", alors espérons qu'il y ait des super astuciens qui sachent le faire, car ça m'intéresse aussi de savoir faire ça !

Anonyme
 Posté le 06/02/2013 à 21:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

tout le monde

Je ne sais pas si c'est bien ça que vous chercez,mais je me lance:

http://silkyroad.developpez.com/VBA/ControlesUserForm/

il y a aussi en Version PDF ,Version hors-ligne et Kindle (Amazon)." href="http://silkyroad.developpez.com/VBA/ControlesUserForm/ControlesUserForm.epub">ePub, Kindle (Amazon)." href="http://silkyroad.developpez.com/VBA/ControlesUserForm/ControlesUserForm.azw">Azw et Mobi

C'est un peu long a lire,je vous laisse le soin 'éplucher

galopin01
 Posté le 07/02/2013 à 03:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
vieuxmonsieur a écrit :

j'avais bien esseye cela mais je reste dans la cellule apres saisie


Bojour,

Je n'ai plus 2003 mais il y a dans Outils > Options (Chercher l'onglet exact...) quelque chose qui ressemble à ça :

...YAKA cocher l'option Déplacement

A+

vieuxmonsieur
 Posté le 07/02/2013 à 10:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour, vous dites :

Boogie Palace : si j'ai bien compris la demande de vieuxmonsieur, la tabulation doit se faire après la saisie du premier (et seul autorisé) caractère, le second caractère tapé doit être saisi automatiquement dans la cellule suivante.

ReineClaude : declencher une tabulation automatique lorsque le nombre de caractères maxi autorisé (4) est atteint

galopin01 : oui, dans outils options onglet modification, il y a bien ce que tu decris, mais le but souhaite, si cela est possible, est d'accelerer la saisie de notation (principe en cours d'experimentation)

ex : dupont - E T B M P - E T B M P - E T B M P - E T B M P - E T B M P - E T B M P - soit cinq notations pour un sujet donnant la notation finale

Anonyme
 Posté le 07/02/2013 à 13:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
vieuxmonsieur a écrit :

bonjour, vous dites :

ReineClaude : declencher une tabulation automatique lorsque le nombre de caractères maxi autorisé (4) est atteint

vieuxmonsieur

Et si en lieu et place du "4" vous inscrivez "1",ça ne marcherais pas?

Déclencher une tabulation automatique lorsque le nombre de caractères maxi autorisé (4) est atteint.

Vba

 Private Sub UserForm_Initialize() 
'Définit le nombre de caractères maxi dans le textbox
TextBox1.MaxLength = 4
'Définit la tabultation automatique
TextBox1.AutoTab = True
End Sub



Modifié par Anonyme le 07/02/2013 13:17
vieuxmonsieur
 Posté le 07/02/2013 à 13:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

re,

avec un usf ca devrait aller mais voia sur le fichier iln'y a pas d'usf

Publicité
papouclo
 Posté le 07/02/2013 à 18:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,
Peut-être une possibilité d'accélérer la saisie avec une procédure évènementielle :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
'permet de sortir de la procédure si plus d'une cellule est sélectionnée
'(sinon la suite de la macro renvoie un message d'erreur)

If Target.Column <> 2 Then Exit Sub
'permet de sortir de la procédure si la cellule changeant de valeur
' n'est pas dans la colonne B

If Len(Target.Value) < 2 Then Exit Sub
'permet de sortir de la procédure lorsque la cellule de la colonne B
'ne contient plus qu'une seule lettre ou est effacée.

maligne = Target.Row
machaine = Target.Value
For i = 5 To 1 Step -1
Cells(maligne, i + 1).Value = Mid(machaine, i, 1)
Next i

End Sub

Cordialement

vieuxmonsieur
 Posté le 07/02/2013 à 21:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

merci papouclo mais rien ne se passe

quelque chose qui m'echappe ?

ne faudrait-il pas un equivalent de la touche entree... ?



Modifié par vieuxmonsieur le 08/02/2013 01:20
vieuxmonsieur
 Posté le 08/02/2013 à 12:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

fichier exemple ci joint :

http://cjoint.com/?CBimwJclWvp

papouclo
 Posté le 08/02/2013 à 12:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour vieuxmonsieur,
C'est la touche entrée qui valide le changement de valeur d'une cellule de la colnne B et lance la procédure.
J'ai oublié de préciser :
- qu'il faut enregistrer le code non pas dans un module mais ,après avoir sélectionné la feuille de travaildans l'éditeur, directement dans l'espace associé à cette feuille,
- qu'à la saisie, il faut entrer la totalité des 5 lettres dans une cellule de la colonne B avant de valider.
Je joins le classeur sur lequel j'ai fait les essais enregistré au format XL 2003.
http://cjoint.com/?CBimIHP7flR
Cordialement

papouclo
 Posté le 08/02/2013 à 18:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Rebonjour vieuxmonsieur,
Nos messages se sont croisés.
Sur le classeur essai_notes que vous avez envoyé, si l'on entre un mot de 5 lettres dans une cellule de la colonne B, les lettres se
"dispachent" bien à raison d'une par cellule sur la plage B:F dès que l'on valide.
La macro fonctionne avec ou sans l'avant-dernière ligne rajoutée
SendKeys "{ENTER}", True

Mais i y a une certaine distorsion entre ce classeur où la plage verte attendant des lettres semble être la plage C:G
alors que le 1er message parlait d'une plage B:F.
Il suffit de modifier légèrement le code de la macro qui deviendrait :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
'permet de sortir de la procédure si plus d'une cellule est sélectionnée
'(sinon la suite de la macro renvoie un message d'erreur)

If Target.Column <> 3 Then Exit Sub
'permet de sortir de la procédure si la cellule changeant de valeur
' n'est pas dans la colonne C

If Len(Target.Value) < 2 Then Exit Sub
'permet de sortir de la procédure lorsque la cellule de la colonne C
'ne contient plus qu'une seule lettre ou est effacée.

maligne = Target.Row
machaine = Target.Value
For i = 5 To 1 Step -1
Cells(maligne, i + 2).Value = Mid(machaine, i, 1)
Next i

End Sub

On devra faire alors des saisies de "mots" de 5 lettres dans les cellules de la colonne C.

De plus, la feuille contient 5 zones vertes. Si l'on veut que cette saisie puisse se faire dans chacune des zones,
remplacer dans la macro la ligne :
If Target.Column <> 3 Then Exit Sub
par :
If Target.Column <> 3 And Target.Column <> 9 And Target.Column <> 15 And Target.Column <> 21 And Target.Column <> 27 Then Exit Sub
remplacer la ligne
Cells(maligne, i + 1).Value = Mid(machaine, i, 1)
par :
Target.Offset(0, i - 1).Value = Mid(machaine, i, 1)
supprimer la ligne
maligne = Target.Row
devenue inutile

Cordialement

vieuxmonsieur
 Posté le 09/02/2013 à 10:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour papouclo,

je te remercie vivement pour ton aide efficace, ton code et tes explications.

je vous souhaite a tous un excellent week end

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
103,54 €Tablette 8 pouces Galaxy Tab A 2019 (4 coeurs, 32 Go, Wifi, HD, RAM 2 Go) à 103,54 € livrée
Valable jusqu'au 18 Avril

Amazon Espagne fait une promotion sur la tablette 8 pouces Samsung Galaxy Tab A 2019 qui passe à 98,18 € (avec la TVA ajustée). Comptez 5,36 € pour la livraison en France soit un total de 103,54 € livrée. On la trouve ailleurs à plus de 150 €. Cette tablette possède un écran 8 pouces HD (1280x800 pixels), un processeur quad-core 2 GHz, 2 Go de RAM, un espace de stockage de 32 Go extensible par MicroSD, le WiFi, le bluetooth et tourne sous Android 10.

La tablette pourra être mise en français dès le premier démarrage et vous bénéficiez d'une garantie européenne de 2 ans. Vous pouvez utiliser votre compte Amazon France sur Amazon Espagne et il n'y a pas de douane.


> Voir l'offre
99,99 €Mario Kart Live: Home Circuit à 99,99 €
Valable jusqu'au 17 Avril

Amazon propose actuellement Mario Kart Live: Home Circuit avec le kart Luigi pour Nintendo Switch à 99,99 € au lieu de 109 €. Laissez libre cours à votre imagination et créez vos propres courses dans le monde réel. Imaginez votre salle à manger se transformer en un monde de lave où bananes et carapaces s’échangeraient au rythme des rugissements des moteurs de votre kart, lui aussi réel… les possibilités sont infinies !


> Voir l'offre
9,99 €Adaptateur Bluetooth USB TP-Link UB400 à 9,99 €
Valable jusqu'au 18 Avril

Amazon fait une promotion sur l'adaptateur Bluetooth USB TP-Link UB400 qui passe à 9,99 €. Cet adaptateur à brancher sur un port USB va vous permettre d'ajouter le bluetooth à votre ordinateur et d'utiliser ensuite sans fil vos périphériques bluetooth : souris, clavier, casque, manette, téléphone, ...


> Voir l'offre

Sujets relatifs
1ère lettre en majuscule dans cellule
Diviser chaque cellule dans plage cellule par 3
Créer des cases à cocher dans une seule cellule ?
nb de liens dans une plage appartennant à la même ligne Horiz. ou verti...
case à cocher dans cellule Excel 2010
Recopie cellule dans un autre classeur
Word 2007-Texte centré dans une cellule
les divers numéros qu'on retrouve dans une plage
toutes les données dans une cellule
Probleme de chiffre dans cellule
Plus de sujets relatifs à une seule lettre dans la cellule dans plage B:F
 > Tous les forums > Forum Bureautique