Changer de cellule lors de saisie d'un caractère

ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58989 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,
J'ai une question simple que je n'arrive pas à résoudre :
J'aimerais pouvoir changer de cellule lorsque je saisis du texte. Exemple : Au lieu d'écrire BONJOUR en A1, j'aimerais pouvoir écrire B en A1, O en B1 N en C1 J en D1 etc...
Et cela sans avoir à appuyer sur entrée après la lettre, la transition vers la cellule doit se faire automqtiauement.
Quelqu'un aurait-il une idée ??
Merci d'avance pour votre aide,
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
en B1
=STXT($A1;COLONNE()-1;1)
et tirer vers la droite
1
ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel, merci pour votre apport.
Cette suggestion pourrait fonctionner, mais je dois appuyer sur "entrée" avant d'afficher le résultat. Or j'aimerais segmenter mon texte dans plusieurs cellules dès l'instant où un caractère est saisi..
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bon, passons...

essaies cette petite macro
a partir de ta cellule activ (A1 ou B6 ou...)

Option Explicit
'-------------
Sub Ecarteler_mot()
Dim Mot As String, Nbre As Byte
Dim col As Byte, Lig As Byte, Cptr As Byte

Mot = InputBox("Mot à disperser")
Nbre = Len(Mot)
col = ActiveCell.Column - 1
Lig = ActiveCell.Row
For Cptr = 1 To Nbre
Cells(Lig, col + Cptr) = Mid(Mot, Cptr, 1)
Next
End Sub



0
ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Michel. La macro fonctionne en effet, mais ne répond pas tout à fait à mon besoin. Je m'explique, j'ai en fait une grille de 40 caractères (mais 10 pour l'exemple suffiront). L'utilisateur doit écrire dans la grille, mais pour rendre la procédure plus agréable, je ne veux pas qu'il saisisse "B" puis "Flèche droite" puis "O" puis "Flèche droite" puis "N" puis "flèche droite" etc...
J'aimerais qu'à l'instant où il ait appuyé sur B, une macro s'enclenche comme s'il avait appuyé sur flèche droite. J'ai trouvé les instructions SendKeys mais je n'arrive pas à l'exploiter correctement.
Est-ce que ma deande est plus claire cette fois ? Encore merci pour votre aide.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
donc
j'écris "B" dans une cellule (n'importe laquelle ?) le code décale la cellule active à droite etc., c'est ça ?
0
ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Exactement ! A terme pas n'importe quelle cellule puisque ma "grille de saisie" est figée.
En gros j'aimerais traduire :

Dans une plage de donnée choisie
Dès qu'un caractère (lettre ou chiffre ou caractère special etc...) est saisi alors
envoi de l'instruction fleche droite pour me décaler d'une cellule vers la droite
repeter jusquà la fin de la plage
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Qu'est ce que c'est cette histoire de grille de saisie figée et où est elle située ?

Je suis obligé à chaque proposition de tout recommencer suite à ton flou artistique... et ce n'est pas dans mes habitudes...
0
ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Imagine que de A1 à G1 je veux que la macro fonctionne.
Inutile d'appliquer ce mode de saisie à toute la feuille
Ma demande est simplement d'automatiser le passage à la cellule de droite sans avoir à appuyer sur fleche droite, mais dès qu'un caractère a été saisi.
0