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 :

Déplacement automatique de la sélection d’une cellule.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 19
    Par défaut Déplacement automatique de la sélection d’une cellule.
    Bonjour,

    Dans mon tableau Excel comprenant plusieurs feuilles j’aimerais intégrer une macro avec les fonctions suivantes :

    La cellule de départ de la Macro devra être choisie par un double clic sur cette cellule. Supposons que ce soit dans la cellule B5.
    Après entrée des données et appuis sur la touche Valider, la cellule de droite devra être sélectionnée, donc C5.
    Ensuite après entrée des données dans cette cellule et appuis sur la touche Valider, la cellule B6 devra être sélectionnée. Puis après validation ce sera la cellule C6 qui devra être sélectionnée et ainsi de suite.
    La valeur des cellules sera numérique, elle pourra aussi être vide.

    Après un double clic dans une autre cellule de la feuille ou d’une autre feuille le même processus devra s’engager.

    J’espère que mon souhait n’est pas trop impertinent.
    Je remercie d’avance toute personne qui pourra m’aider.

    André

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ci dessous un code qui devrait t'aider.
    A coller dans thisworkbook

    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
    Public Rg As Range
    Public r As Integer
    Public c As Integer
     
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Set Rg = Target
    r = 0
    c = 1
    End Sub
    '
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Rg Is Nothing Then
     
        If Not Application.Intersect(Target, Range(Rg, Rg.Offset(1, 1))) Is Nothing Then
            Application.EnableEvents = False
            Set Rg = Rg.Offset(r, c)
            Rg.Select
            If r = 0 Then r = 1 Else r = 0
            If r = 0 Then c = 1 Else c = -1
            Application.EnableEvents = True
        Else
            Set Rg = Nothing
        End If
    End If
     
    End Sub

  3. #3
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonsoir

    ceci me paraît pratique:

    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
    Dim mvDir As Integer, deM As Integer, init As Boolean
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Target.Address = "$B$5" Then
            If Not init Then
                init = True
                mvDir = Application.MoveAfterReturnDirection
                MsgBox "pour sortir de la zone d'édition, double-cliquez à nouveau sur n'importe quelle autre cellue en dehors de la zone d'édition .", vbInformation, "Zone acivée"
     
            End If
     
            deM = 1
     
            With Application
                .EnableEvents = False
                Range("B5:C6").Select
                .MoveAfterReturnDirection = xlToRight            
                .EnableEvents = True
            End With
     
            Feuil1.ScrollArea = "$B$5:$C$6"
        Else
            '
            Feuil1.ScrollArea = ""
            Application.MoveAfterReturnDirection = mvDir
            deM = 0 'indiquer à d'autres gestionnaires l'action
        End If
     
    End Sub

Discussions similaires

  1. [XL-2010] Macro sélection de cellules, copie dans mail avec envoi automatique
    Par Raylooker dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2015, 19h05
  2. Réponses: 10
    Dernier message: 01/03/2011, 09h49
  3. Sélection de cellules automatique
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/06/2009, 10h42
  4. Sélection d’une plage de cellule
    Par Domver dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2007, 14h16

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