XL pour MAC Changer de cellule automatiquement après avoir entré une valeur dans la cellule.

Valter

XLDnaute Occasionnel
Bonjour, j'aimerai pouvoir écrire un texte en introduisant une lettre par cellule et que la sélection de ma cellule passe automatiquement à la cellule suivante sans devoir utiliser les flèches au la touche tab... Exemple : si j'écris "Monsieur" en A1, le M majuscule s'inscrit dans la cellule A1, ensuite automatiquement le "o" s'inscrit et B1, le "n" en C1...et ainsi de suite... Ceci a l'intérieur d'un cadre bien déterminé comme par exemple de A1 à F20. Une fois arrivé a F1, cela repart automatiquement à A2.... Merci pour votre aide.
 

wDog66

XLDnaute Junior
Bonjour Valter,

Je ne travaille pas sur Mac, mais normalement avec ce code mis dans la feuille de saisie
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Mot As String, Col As Long
  If Not Intersect([A:A], Target) Is Nothing Then
    Application.EnableEvents = False
    Mot = Target.Value
    For Col = 1 To Len(Mot)
      Cells(Target.Row, Col).Value = Mid(Mot, Col, 1)
    Next Col
    Application.EnableEvents = True
  End If
End Sub
A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Mais comme le décrit @Valter ce n'est pas possible à moins de s'arranger pour donner le focus à un contrôle ActiveX supportant l'évènement KeyPress.
VB:
Option Explicit
Private Cel As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Me.TBx1L.Text = ""
   If Intersect(Me.[A1:F20], Target) Is Nothing Then Exit Sub
   Set Cel = Target(1, 1)
   Me.TBx1L.Activate
   End Sub
Private Sub TBx1L_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   Cel.Value = ChrW$(KeyAscii)
   If Cel.Column >= 6 Then Set Cel = Cel.Offset(1, -5) Else Set Cel = Cel.Offset(0, 1)
   Me.TBx1L.Text = ""
   End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Certes, il a dit :
si j'écris "Monsieur" en A1
donc supposé validé ensuite, et non pas :
si j'écris "Monsieur" à partir de A1
Mais le reste de son propos semble indiquer qu'il voudrait que, sans qu'il valide quoi que ce soit, à chaque frappe d'une lettre elle s'inscrive aussitôt dans la cellule et que la cellule suivante soit sélectionnée pour la lettre suivante. Alors je dis qu'il n'est possible d'avoir quelque chose d'approchant que sans qu'aucune cellule ne soit sélectionnée, mais que la saisie soit interceptée par un contrôle ActiveX.
 
Dernière édition:

wDog66

XLDnaute Junior
Désolé nous n'avons pas la même notion du français, pas forcément étonnant vu votre pseudo 😉

"Si j'écris Monsieur en A1"
Déjà sur Excel on n'écrit pas, on saisi 😜😂
Mais "Monsieur" est saisi... Donc le reste est simple

On peut toujours faire compliqué, quand les choses sont simples... Cela reste un état d'esprit 🤔

Bon dimanche
 

jurassic pork

XLDnaute Nouveau
Hello,
Bonjour, j'aimerai pouvoir écrire un texte en introduisant une lettre par cellule et que la sélection de ma cellule passe automatiquement à la cellule suivante
Quel est le but final de cette manipulation ? Pourquoi ne pas utiliser un formulaire avec un contrôle de saisie et un bouton de validation qui lance du code VBA pour faire cela ? En plus si tu fais la saisie dans la feuille comment fais-tu si tu fais une erreur de saisie ?
Ami calmant, J.P
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

C'est décrit à quel endroit 😂
😯 🤪 🙃 Ben là... :
j'aimerai pouvoir écrire un texte en introduisant une lettre par cellule et que la sélection de ma cellule passe automatiquement à la cellule suivante sans devoir utiliser les flèches au la touche tab...


Mais le reste de son propos semble indiquer qu'il voudrait que, sans qu'il valide quoi que ce soit, à chaque frappe d'une lettre elle s'inscrive aussitôt dans la cellule et que la cellule suivante soit sélectionnée pour la lettre suivante.
Oui, c'est effectivement ce qui est décrit.
Ta solution semble vraiment pas mal du tout ! 👍
 

Discussions similaires

Statistiques des forums

Discussions
312 864
Messages
2 093 002
Membres
105 593
dernier inscrit
Damien49