Un seul caractère par cellule Excel.

Fermé
CaymanS - 7 oct. 2007 à 00:27
 Anonyme - 10 oct. 2007 à 18:02
Bonjour,
Comment, avec une macro VBA, passer automatiquement d'une cellule à une autre après avoir saisi un caractère ?
Exemple : BOB, B dans la cellule A1, O dans la cellule B1 et B dans la cellule C1.
Merci pour vos réponses.
A voir également:

8 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
7 oct. 2007 à 12:31
Bonjour,

si B1= "BOB"

ch=[B1].value
for i = 1 to len(ch)
[A1].offset(i-1).value = mid(ch,i,1)
next i

eric
0
Bonjour Eric,
Merci pour ta réponse. Ta solution fonctionne si le texte est connu par avance. Dans mon cas, le texte est composé à la saisie, c'est l'action d'une touche du clavier dans une cellule qui doit permettre d'envoyer le focus dans une cellule adjacente, ainsi de suite. Je sais, ardu, mais je cherche.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
7 oct. 2007 à 23:38
Ben fais enter après chaque caractère :-) en cochant ce qui va bien dans options / Modifications / Déplacer la sélzction après la modification
ou si tu veux te compliquer utilise l'evenement Change du Worksheet
eric
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
8 oct. 2007 à 05:40
Bonjour Eric, bonne journée
Petit info complémentaire pour la rentrée successive en ligne plutot qu'en colonne sur excel:
au lieu de décocher la fonction déplacer...., il suffit pour limiter les entrées à une zone, de la sélectionner entière. Excel déplacera alors le curseur dans le champ seulement, d'abord en colonne et remontera , arrivé en bas du champ, à la colonne suivante.
Si votre champ n'a qu'un ligne, excel se déplace à l'horizontal sur toute la sélection (et attention,tourne en boucle dans le champ!!)
Bien cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
8 oct. 2007 à 07:06
Bonjour Vaucluse,

Merci de ce complément quand on veut remplir une zone, c'est vrai qu'on n'y pense pas toujours et que c'est bien utile.
Mais en tout état de cause excel remplira en colonne si "bas" est choisi dans "Déplacer la sélzction après la modification", et en ligne si "droite" est sélectionné.

Bonne journée à toi aussi
eric
0
Bonjour Éric,

J'ai testé la fonction Change du Worksheet :

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveCell.Offset(-1, 1).Select
End Sub

Ça marche mais problème : Comment intégrer l'action de la touche ENTREE dans cette fonction ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
10 oct. 2007 à 17:18
Bonjour Cayman,

Heuuu, je ne vois pas trop où tu veux en venir...
Si tu utilises l'evenement change c'est que c'est celui-ci qui t'interesse et l'argument à utiliser est target qui est l'adresse de la cellule ayant changé (en te mefiant qu'il n'est déclenché que si saisie utilisateur. Ta cellule d'à coté qui aurait une formule recalculée ne le déclenche pas).
La 1ere chose à faire est de lire quelle cellule (avec target.address) est modifiée et voir si elle fait partie de la plage où tu désires intervenir. (avec intersect(...,...,...) par exemple)
Cet evenement est déclenché à la fin de ta saisie après l'appui sur enter.

A lire ton code tu saisis qcq chose dans une cellule, excel déplace ta sélection en fonction des options que tu as choisi (à-priori déplacement vers le bas), que tu modifies avec ton programme en 1 ligne +haut et 1 colonne à droite. Ce qui t'amene à la cellule à droite de ta saisie (chose que tu peux faire juste en modifiant les options).

A mon avis tu voulais faire autre chose mais quoi je l'ignore

eric
0
Salut


Comment intégrer l'action de la touche ENTREE dans une fonction ?
Ou comment simuler l'appui de la touche ENTREE ?


Solution en plus de l'intégration de la fonction CHR(13) + CHR(10) ; (retour chariot plus saut de ligne) :


Regardes, s'il te plaît de le faire, là, "CaymanS" du Post #6 :

Par moi-même, le vendredi 21 septembre 2007 à 00h22:41 ; Post #5 :
https://forums.commentcamarche.net/forum/affich-3620439-code-du-bouton-imprimer#5

Par moi-même, le mercredi 26 septembre 2007 à 02h34:33 ; Post #3 :
https://forums.commentcamarche.net/forum/affich-3649534-programmer-le-passage-en-majuscules#3


http://users.skynet.be/micdub/vba6.htm <<== SOURCE DE TOUT OU PRESQUE !!


Sub test_touche_ENTREE_a1()
Application.SendKeys "{ENTER}" 'ou "~"
End Sub


merci .

à+
0