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 :

Exécution automatique d'une macro sans changer de cellule.


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Exécution automatique d'une macro sans changer de cellule.
    Bonjour à tous,

    J'ai créé un tableau Excel qui regroupe les pronostics des matchs de la coupe du monde. Une fois le score réel encodé, tout est calculé automatiquement, les points sont attribués aux pronostiqueurs, et un classement des meilleurs pronostiqueurs est effectué.

    La macro qui s'en charge est la suivante:

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("A1:AAA90")) Is Nothing Then
     
           '
        ' Macro2 Macro
        '
     
        '
           Range("F2:I9").Select
            ActiveWorkbook.Worksheets("Brazil 2014").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Brazil 2014").Sort.SortFields.Add Key:=Range( _
                "H3:H9"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
                xlSortNormal
            ActiveWorkbook.Worksheets("Brazil 2014").Sort.SortFields.Add Key:=Range( _
                "G3:G9"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
        With ActiveWorkbook.Worksheets("Brazil 2014").Sort
                .SetRange Range("F2:I9")
                .Header = xlYes
                .MatchCase = True
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
        End With
      End If
    End Sub



    Cependant, là ou ça pose problème, c'est qu'une fois une cellule modifiée, tout se met à jour normalement comme je le souhaite et sans problèmes, mais je souhaiterais que la cellule sélectionnée ne change pas, c'est à dire que la macro s'effectue sans me déplacer le curseur. Que puis-je insérer dans mon code?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Utiliser l'icône # pour baliser le code comme indiqué dans les règles du forum , cela ressemblera à quelque chose !

    Pour de pas bouger la sélection tout simplement ne pas sélectionner d'autres cellules dans le code …

    Exemple dans cette discussion … Et certainement dans l'exemple de l'aide de la méthode Sort !

    Pour les moins doués, il y a encore la possibilité de sauvegarder dans une variable l'adresse de la sélection
    avant d'en changer puis de la restaurer en fin de procédure …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre réponse rapide, mais pardonnez-moi, je ne la trouve pas très claire.

    J'ai ajouté ceci à mon code, après avoir fait d'autres recherches:


    Cela règle en partie mon problème puisque, une fois la cellule modifiée, l'exécution de la macro s'effectue et la cellule que je viens de modifier reste bien sélectionnée cependant, une fois la cellule modifiée, je souhaiterais que lorsque j'utilise la touche enter ou une flèche directionnelle par exemple la flèche du bas, la macro s'exécute mais également que la cellule sélectionnée après l'exécution soit celle juste en dessous de celle modifiée (ou celle du haut si j'ai pressé la touche flèche du haut).

    Merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


    L'évènement Worksheet_Change se déclenche uniquement lors d'une modification d'une cellule …

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Oui je comprends bien, c'est bien pour cela que j'utilise cette fonction, c'est ce que je recherche.

    Je souhaiterais juste que la macro s'effectue automatiquement après modification de la cellule mais sans affecter la position de mon "curseur". je ne sais pas si je me fais bien comprendre...

    En gros je suis en AB25, je modifie la cellule AB25 j'appuie sur flèche de droite, ce qui en théorie lancera la macro puisque en quittant la cellule cela activera la modification et je devrais me retrouver sur la cellule adjacente de droite. Ce qui n'est pas la macro, une fois la cellule modifie s'exécute mais je reste en AB25 ou lieu d'être en AC25.

    Merci d'avance

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

Discussions similaires

  1. [XL-2007] Exécuter une macro sans ouvrir Excel
    Par jao.itaparic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/02/2010, 21h48
  2. Exécution automatique d'une macro
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2008, 19h19
  3. exécution d'une macro sans ouvrir le fichier
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/05/2008, 11h49
  4. Syntaxe:Exécution automatique d'une macro
    Par bebertol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/06/2007, 11h20
  5. exécution automatique d'une macro
    Par faayy dans le forum Access
    Réponses: 12
    Dernier message: 15/06/2005, 14h52

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