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 :

declencher une macro suite a une modification d une feuille Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut declencher une macro suite a une modification d une feuille Excel
    Bonjour tout le monde,

    Voila mon probleme :
    j exporte d access vers excel une liste et je voudrais ecrire sur mon fichier excel (celui qui recoit l exportation) une macro qui transfere une partie de cette liste sur une autre feuille du meme fichier excel. (car je voudrais eviter d avoir a l ouvrir pour effectuer le transfert d une page a l autre)

    ex Ma base s appelle BD
    mon fichier excel EX

    je travaille sur BD (seul fichier ouvert)
    je declenche l exportation de ma requete vers EX
    (celle ci se placant toujours au meme endroit (en feuille 5))
    et juste apres que ma liste soit arrivé en feuille 5 de EX, c'est la que devrait se declenché ma macro pour transferer une partie de ma liste en feuille 2 (toujours de EX).

    Mon but est de ne pas avoir a ouvrir le classeur EX.

    Comment faire ?

  2. #2
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Bonjour,

    Quand tu utilises l'exportation de Acces vers Excel, cela doit bien ouvrir Excel non ?

    Si c'est le cas, tu peux utiliser l'événement qui suit (dans la feuille d'arrivée):
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    End Sub

    sinon carrément au niveau du classeur avec l'événement :
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
    End Sub

    +

    Théo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut
    ben ca marche pas !

    l exportation de access vers Excel se passe bien mais la macro ne se declenche pas

    j ai du me planter ou oublir de spécifier qqchose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Makro1()
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
        Dim n As Integer
        n = Sheets(4).Range("a1").End(xlToRight).Column
        Sheets(4).Activate
        Range("a1").Select
        Range(Selection, Cells(1, n - 1)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy Sheets(2).Range("a1")
     
    End Sub
    qu est ce que tu en penses??

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    il y a un soucis car tu as 2 Sub imbriqués dans ta procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Makro1()
    Private Sub Workbook_SheetChange
    ....

    Ta procédure evenementielle doit être placée dans le module objet de ta feuille:

    http://silkyroad.developpez.com/VBA/EvenementsFeuille/


    de plus Workbook_SheetChange et Worksheet_Change, ce n'est pas la meme chose:

    http://silkyroad.developpez.com/VBA/EvenementsClasseur/


    bonne soirée
    michel

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut
    pardon pour le sub en trop j ai copié mon code un peu vite ...

    mais meme en placant mon code dans le module de ma feuille toujours rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub WorkSheet_Change(ByVal, Target As Range)
     
        Dim n As Integer
        n = Range("a1").End(xlToRight).Column
        Range("a1").Select
        Range(Selection, Cells(1, n - 1)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy Sheets(2).Range("a1")
     
    End Sub
    lorsque j ouvre le classeur et que je modifie n importequelle cellule de ma feuille (ou g ecrit le code). la, pas de probleme, la macro se declenche automatiquement.

    Mais qd j exporte, de ma base de donnée, ma liste vers le fichier excel (celui ci etant biensur fermé) il n y pas de declenchement de la macro a l interieur de celui ci.
    pourtant quand je l ouvre, je constate que l importation a bien eu lieu.
    l importation a bien sur modifié plein de cellules au niveau de la feuille, elle aurait du declencher la macro ! ??
    Suis je obligé d ouvrir ce fichu classeur pour executer ma macro ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Mais qd j exporte, de ma base de donnée, ma liste vers le fichier excel (celui ci etant biensur fermé) il n y pas de declenchement de la macro a l interieur de celui ci.
    Je n'avais pas compris que le classeur était fermé: Dans ce cas c'est normal qu'il ne se passe rien. A ma connaissance, il n'est pas possible de déclencher une macro dans un classeur fermé.


    michel

  7. #7
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    Pourquoi ne pas mettre ton code de copie de colonne directement dans ton exportation Access ?
    Sinon pour lancer une macro depuis Access c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <objApplicationExcel>.Run "Nom Macro"
    Citation Envoyé par chamus
    pardon pour le sub en trop j ai copié mon code un peu vite ...

    mais meme en placant mon code dans le module de ma feuille toujours rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub WorkSheet_Change(ByVal, Target As Range)
     
        Dim n As Integer
        n = Range("a1").End(xlToRight).Column
        Range("a1").Select
        Range(Selection, Cells(1, n - 1)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy Sheets(2).Range("a1")
     
    End Sub
    lorsque j ouvre le classeur et que je modifie n importequelle cellule de ma feuille (ou g ecrit le code). la, pas de probleme, la macro se declenche automatiquement.

    Mais qd j exporte, de ma base de donnée, ma liste vers le fichier excel (celui ci etant biensur fermé) il n y pas de declenchement de la macro a l interieur de celui ci.
    pourtant quand je l ouvre, je constate que l importation a bien eu lieu.
    l importation a bien sur modifié plein de cellules au niveau de la feuille, elle aurait du declencher la macro ! ??
    Suis je obligé d ouvrir ce fichu classeur pour executer ma macro ?

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

Discussions similaires

  1. Déclenchement d'une macro lors de la modification d'une cellule
    Par bohemian dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/06/2012, 11h01
  2. Déclenchement d'une macro lors de la modification d'une cellule
    Par mirmae dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2012, 15h28
  3. Lancement d'une macro lors de la modification d'une cellule
    Par Gerardd dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2010, 11h04
  4. [XL-2003] Exécution d'une macro lors de la modification d'une plage de cellules
    Par martinmacfly dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 08/01/2010, 10h51
  5. Lancer une macro lors de la modif d'une case excel
    Par frevale dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/08/2006, 12h19

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