IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transmission du curseur sans cliquer sur Inter


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Points : 0
    Points
    0
    Par défaut Transmission du curseur sans cliquer sur Inter
    Bonjour à tous

    Si le nombre de caractères dans la cellule en cours est de deux caractères, le pointeur passe à la cellule suivante.

    Comment puis-je adapter le code suivant à cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    Public hHook As Long
    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
    (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
    Const WH_KEYBOARD = 2
    Sub BeginHK()
        i = GetCurrentThreadId
        hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf HookProc, 0, i)
    End Sub
    Public Function HookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If code < 0 Then
            HookProc = CallNextHookEx(hHook, code, wParam, lParam)
        Else
        Select Case HookProc
               Case Is > 0
              '-------------------------------------------------------
              If Len(ActiveCell) = 2 Then ActiveCell.Offset(1).Select
              '-------------------------------------------------------
    '         HookProc = 1
        End Select
        End If
    End Function
    Sub EndHK()
        'Stop Hook
        UnhookWindowsHookEx hHook
    End Sub

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Points : 0
    Points
    0

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 181
    Points : 5 512
    Points
    5 512
    Par défaut
    Bonjour,

    Je ne suis pas certain d'avoir compris votre demande, mais voici toujours un dispositif pour "sauter" les cellules qui contiennent 2 caractères, code à placer au niveau de la feuille concernée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Len(Target.Value) = 2 Then
          ActiveCell.Offset(0, 1).Select   '--- passe à la colonne suivante, même ligne
          'ActiveCell.Offset(1, 0).Select   '--- passe à la ligne suivante, même colonne
       End If
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. fermer une JFrame sans cliquer sur la croix rouge
    Par canary dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 26/04/2008, 13h26
  2. Réponses: 5
    Dernier message: 26/12/2007, 12h51
  3. Faire un submit sans cliquer sur le bouton.
    Par babalastar dans le forum JSF
    Réponses: 3
    Dernier message: 27/03/2007, 10h02
  4. Réponses: 2
    Dernier message: 07/06/2006, 09h29
  5. [VB6] Déplacer la form sans cliquer sur la barre de titre
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/11/2002, 02h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo