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 :

Macro qui s'execute automatiquement!


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut Macro qui s'execute automatiquement!
    Bonjour!

    Je voudrais savoir s'il est possible de réaliser une macro qui :
    1) S'ouvre en même temps que la feuille excel,
    2) Se lance automatiquement lorsque l'utilisateur change la valeur d'une cellule précise.

    Exemple (très simple, dans ma macro c'est pas ca!):
    A5 = A3 + A6
    Si je change la formule de A6 alors automatiquement la valeur de A5 aussi change.

    Merci!!

  2. #2
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Bonjour
    Pour le lancement automatique, tu vas dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     
    End Sub
    Et tu place soit ton code soit un appel de ta procédure
    Pour la deuxième question... j'ai pas de réponse
    Slts

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    Pour une macro qui s'ouvre en même temps que le fichier, glisse dans l'onglet "thisworkbook" de l'éditeur VbA avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private sub Workbook_Open()
    Et pour l'autre jette un oeil sur les évènements de la feuille de calcul dans les tuto ya ce qu'il faut je crois

    Workbook_SheetCalculate

    un truc comme çà

    Az

  4. #4
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    J'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    A = Target.Address
    End Sub
    Dans A tu récupère l'adresse de la cellule modifiée
    Slts

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut
    Merci!
    Je vais essayer de ce pas!

  6. #6
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut
    Re Salut!

    J'ai mis ce code dans "this Workbook" , mais rien ne se passe!
    -----------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Change(ByVal Target As Range)
    Cells(20, 2) = Target.Address
    Range("A25").Value = Target.Value * 10
    End Sub
    ----------------------------
    Normalement, avec un code comme ca, la cellule A25 devrait m'afficher 10 fois la cellule B20 quand je change sa valeur, non?

    Qu'est ce que je n'ai pas compris?

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Re bonjour
    C'est pas dans This Workbook mais dans le code de ta feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As String
    Dim B As String
    B = Target.Address
    If B = "$B$2" Then 'test sur la cellule modifiée
        'suppression des $
        For I = 1 To Len(B)
            If Mid(B, I, 1) <> "$" Then
                A = A + Mid(B, I, 1)
            End If
        Next
        Range("A25").Value = Range(A).Value * 10
    End If
    End Sub
    De plus, il faut vérifier que tu as bien modifié la cellule voulue car la ligne "Range("A25").Value = Range(A).Value * 10" modifiant à nouveau la feuille, le processus recommence
    Slts

  8. #8
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut
    Apparemment il y aurait une fonction qui serait utile dans mon cas, mais je sais pas trop bien m'en servir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents
    La connaissez-vous?

    Merci

  9. #9
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Ca pourrait en effet être utile
    Mettre au début de la procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents=false
    Puis terminer la preocédure par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents=true
    J'ai pas testé mais ça doit marcher de ce que j'en ai lu dans l'aide
    Slts

  10. #10
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut
    Oui!!!!
    Ca marche!

    Merci encore à tous, vous m'économisez des semaines de réflexion!


  11. #11
    Membre éprouvé
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    J'étais persuadé de t'avoir répondu à ce sujet, il y a du avoir un bug qq part
    Donc, en effet tu mets au début de ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents=false
    et à la fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Enableevents=true
    J'ai pas testé mais de ce que j'en ai lu dans l'aide, ça doit fonctionner
    Slts
    PS: la prochaine fois, je regarderais sur la deusième page

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/04/2015, 11h04
  2. [python/dcom] macro qui se lance automatiquement
    Par axel584 dans le forum VBA Word
    Réponses: 7
    Dernier message: 29/06/2010, 01h01
  3. Macro qui ne s'exécute pas dans formulaire
    Par picatchou dans le forum Access
    Réponses: 10
    Dernier message: 18/09/2006, 17h27
  4. [vba-E] VBA pour macro executable automatiquement
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2006, 14h20
  5. [vba-E] pour une macro executable automatiquement
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2006, 11h34

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