Vba excel restriction de saisie

Bonjour,

je voudrai savoir si par une macro je peut bloquer la saisie d'une cellule à un caractère et faire entrée après cette saisie, et déplacement vers la celulle de droite.

merci d'avance

4 réponses

  1. Contributeur
    bonjour

    pour bloquer à 1 caractère, pas besoin de VBA !!!

    utilises la validation de données
    option: longueur du texte <=1
    1
    1. bonjour et merci michel
      je me suis peut être mal exprimé, je connais cette option, mais ce que je cherche, c'est qu'une fois un caractère de saisie dans la cellule celà fasse entrée et déplace le cursuer sur la cellule suivante tout seul, afin que le curseur soit sur une nouvelle cellule de saisie.
      0
  2. Contributeur
    Bonjour tout le monde,

    Toujours pas besoin de macro.

    menu 'outils / options...', onglet 'Modification', dans 'déplacer la sélection après validation' choisir 'droite'
    (sur 2003, chercher l'équivalent sur 2007...)
    Et si tu sélectionnes ta plage avant de saisir, en fin de ligne il y aura un retour à la 1ère cellule de la ligne suivante.

    eric
    0
    1. Contributeur
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$B$2" Then Target.Offset(0, 1).Select
      End Sub


      à adapter (ici, cellule B2) et à icopier dans le module feuille de la cellule
      ou
      clic droit sur le nom d'onglet-visualiser le code

      0
      1. bonjour,
        c'est presque çà, quand je je saisie dans la celulle B2 je dois faire entré et là le curseur de deplace bien dans la cellule de droite, est il possible que l'entée et le deplacement se fasse dès la saisie du premier caractère.
        merci de vos réponses
        0
      2. Contributeur
        Bonjour,

        Avec une validation de dionnées, je ne pense pas , ce qui ne veut pas dire que c'est impossible).

        On peut avec un "textbox" qui va sélectionner une cellule quelque soit la position du textbox dans la feuille
        0
      3. Contributeur
        Ci joint démo
        https://www.cjoint.com/?ADDjYQ8RuXu

        zone de texte crée avec la boite à outils contrôle et non formulaire (XL<2007)
        ou insérer-controle "activeX" avec 2007
        0
      4. bonjour Michel
        j'ai regarder ton exemple, s"est exatement ce que je cherche à faire, mais à partir d'une cellule.
        comment tu lui dit dans le code (textbox1)un monbre de caracteres de 3 ou 4 ou 5..
        j'ai un peu de mal, je suis novice en vba
        en tout cas merci encore
        0
    2. Bonjour à tous,

      Autre suggestion :

      Option Explicit
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      
          Application.EnableEvents = False
      
          If Not (Len(Target.Value) = 1) Then
             Target.Value = Left(Target.Value, 1)
          End If
          
          Target.Offset(0, 1).Select
                 
          Application.EnableEvents = True
          
      End Sub
      '
      


      Cdt

      Lupin
      -1