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 :

faire déplacer le curseur d'une cellule à une autre [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Par défaut faire déplacer le curseur d'une cellule à une autre
    Bonjour,

    Je souhaite pouvoir gérer via un programme Vba la gestion du déplacement du curseur d'une cellule choisie à une autre une fois qu'une cellule est remplie par l'utilisateur ( sans qu'excel effectue cette opération par défaut ) . Je souhaite éviter de réaliser un formulaire pour réaliser cette action.

    sauf erreur de ma part, il faut en permanence savoir dans quelle cellule l'utilisateur travaille.
    Existe t-il un exemple de programme qui gère ce type d'action dans une feuille excel ?

    en vous remerciant par avance

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour marcelisa2,

    Je ne sais pas si j'ai bien compris ta demande.
    Voici cependant ce que je te propose.

    Sur la feuille sur laquelle tu souhaites faire un tunnel d'insertion de données (ce que j'ai compris), il faut que tu ailles dans la gestion d’événements de ta feuille et que sélectionne "Worksheet_SelectionChange".

    Voici un bout de code que je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Application.Intersect(Target, Range("B2")) Is Nothing Then
        If Range("B2") = "" Then
            Range("B2").Select
        Else
            Range("E2").Select
        End If
    End If
     
    End Sub
    Celui-ci oblige la sélection et le remplissage de la cellule B2. Tant que celle-ci n'est pas remplie, changer de cellule redirigera le curseur vers celle-ci.
    Dès qu'elle est saisie, le curseur se placera sur E2 avec les mêmes règles de gestion.

    J'attends ton retour.

    Cordialement,
    Kimy

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Par défaut
    Bonjour Kimy,

    j'ai essayé mais n'est pas réussi à faire fonctionner le code.
    j'ai attaché une image de mon maque de saisie sur une feuille excel

    Nom : masque de saisie.JPG
Affichages : 5013
Taille : 145,1 Ko
    L'objectif est de démarrer en cellule C2. une fois l'utilisateur a saisi cette dernière, le curseur doit se déplacer en K2, C4, E4, C6, C12, E12, etc ...

    Est-ce que je peux arriver à réaliser ces actions avec le code fourni?

    Merci encore pour les retours
    Images attachées Images attachées  

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour marcelisa2,

    Je ne comprends pas l'algorithme que tu souhaites "K2, C4, E4, C6, C12, E12, etc ...".

    Peux-tu placer un fichier exemple en pièce jointe ou être plus précis sur cet algorithme ?

    Cordialement,
    Kimy

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Par défaut
    Bonjour Kimy_ire,
    merci pour ton retour.

    En fait, sur une feuille excel, j'ai construit un masque de saisie en utilisant plusieurs cellules que j'ai grisées (cf image jointe mail précédent)

    L'utilisateur a un ordre de saisie par défaut que je souhaiterai piloter à travers une macro.

    L'ordre des cellules est celui précisé K2, C4, E4, C6, C12, E12, etc...

    L'objectif de la macro est de faire en sorte que le curseur passe à la cellule suivante (en respectant cet ordre) une fois que l'utilisateur a mis à jour la cellule précédente.

    S'i y a besoin de nouvelle précision, n'hésite pas
    Merci

    bonjour,
    j'espère que mon besoin sur la gestion d'un masque de saisie dans une feuille excel est suffisamment clair.
    N'hésitez pas à me poser d'autres questions si nécessaire.
    Merci par avance pour votre aide

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste A mettre dans le module de la feuille en question et à adapter :
    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
    31
    32
    33
    34
    35
    36
    37
     
    Private Sub Worksheet_Activate()
     
        'sélectionne la première cellule et l'active pour la saisie
        Range("K2").Select
        Application.SendKeys "{F2}"
     
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'sélectionne les cellules suivantes et les actives pour la saisie
        Select Case Target.Address(0, 0)
     
            Case "K2"
                Range("C4").Select
                Application.SendKeys "{F2}"
     
            Case "C4"
                Range("E4").Select
                Application.SendKeys "{F2}"
     
            Case "E4"
                Range("C6").Select
                Application.SendKeys "{F2}"
     
            Case "C6"
                Range("C12").Select
                Application.SendKeys "{F2}"
     
            Case "C12"
                Range("E12").Select
                Application.SendKeys "{F2}"
     
        End Select
     
    End Sub
    Hervé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/12/2013, 14h13
  2. Réponses: 6
    Dernier message: 22/10/2009, 15h42
  3. Réponses: 12
    Dernier message: 08/05/2009, 15h54
  4. Réponses: 6
    Dernier message: 07/11/2006, 09h23

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