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 :

[Excel] Afterupdate / Macro automatique


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut [Excel] Afterupdate / Macro automatique
    Bonjour,

    Question generale: Je cherche a faire tourner une macro automatiquement apres le changement d'une cellule.

    Peut on utiliser Afterupdate sous Excel comme je l'utilise sous Access ?
    Faut-il nommer la cellule (par exemple: toto), puis faire

    sub toto_Afterupdate () ou qqchose comme ca ?

    Ensuite, pour executer la macro automatiquement, existe t il Docmd.runmacro ?

    Sinon, quelqu'un pourrait il m'eclairer ?

    Merci a tous

    Jah

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    c'est pas tout à fait cela .. pour les cellules d'une feuilles excel tu peu utiliser le code associé à la feuille et les fonctions événementielle

    dans l'éditeur de code VBE, un double clic sur la feuille concerné dans l'arborescence de gauche puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     MsgBox "Modification de la cellule " & Target.Address
    End Sub
    tiens en supplément un peu de lecture

    Cours : Programmer efficacement avec Excel en VBA (pdf, 46 pages, 711 Ko) par J-M Rabilloud

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut
    ok, j'ai mis le code, mais comment le code sait que c'est qd on change la cellule "A1" (par exemple), qu'il doit afficher le message ?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Jah78
    ok, j'ai mis le code, mais comment le code sait que c'est qd on change la cellule "A1" (par exemple), qu'il doit afficher le message ?
    ben tu as essayé de changer une valeur de cellule voir ce que le code affiche dans message box ..?

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut


    Oui, j'ai essayé, mais il n'y a rien qui se passe...

    Mais pour Worksheet_Change, dois je remplacer Worksheet par le nom de ma sheet ?


  6. #6
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut
    ok, excuses moi, je n'avais pas placer la function sur ma feuille mais dans un module. Maintenant, le message s'affiche bien, merci

    Par contre, comment faire pour que ce message ne s'affiche que pour le changement d'une cellule précise (par exemple A1) ?

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Jah78


    Oui, j'ai essayé, mais il n'y a rien qui se passe...

    Mais pour Worksheet_Change, dois je remplacer Worksheet par le nom de ma sheet ?

    non tu n'as même pas à le saisir si tu te trouve au bon endoit.. dans l'éditeur VBE... , dans l'arborescence de gauche tu clique avec le bouton droit sur la feuille concernée, puis tu sélectionne code dans menu .. ensuite dans les 2 combobox au dessus de la zone de saisie du code à gauche tu sélectionne Worksheet et à droite tu sélectionne Change ...

  8. #8
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut
    cool, merci.

    • Comment doit je faire pour que ca réagisse seulement à un changement d'une seule cellule donnée ?


    • De plus, comment puis je lancer une macro automatiquement sur cet évenement, je n'ai pas l'impression qu'il y ai Runmacro...?


    a+

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben au lieu d'afficher l'adresse de la cellule modifié tu effectue un test histoire de voir si c'est la bonne cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = Range("A1").Address Then
        maProcedure
      End If
    End Sub
    ainsi sur changement d'état dans cellule A1, il y as appel de la procédure MaProcedure..
    qui peu être défini dans un module ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub maProcedure()
      MsgBox "MaProcedure"
    End Sub

  10. #10
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Points : 41
    Points
    41
    Par défaut
    merci beaucoup, c'est exactement ce que je voulais!

    je comprends mieux comment vba marche avec Excel!

    a+

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

Discussions similaires

  1. Comment lancer une macro automatique lors d'ouverture de fichier EXcel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2010, 23h48
  2. Désactiver le filtrage automatique en excel par macro
    Par guefrachi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2010, 12h38
  3. [XL-2000] Créer une macro automatique à l'ouverture d'Excel
    Par Nicolas Plan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/04/2009, 11h27
  4. Macro Excel VBA : création automatique de 140 graphes/graphiques
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/02/2007, 10h13
  5. [VBA-E] Macro automatique ouverture Excel
    Par P50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/04/2006, 11h42

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