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

VBA Discussion :

De Module à ThisWorkbook


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut De Module à ThisWorkbook
    Bonjour,

    j'ai une macro ("Workbook_SheetChangequi se trouve dans "ThisWorkbook", et une autre macro ("test") qui se trouve dans un Module.

    La macro qui se trouve dans ThisWorkbook se lance automatiquement à chaque changement d'une cellule se trouvant dans les feuilles TCD ALU et TCD ACIER :

    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        wshSheets = [{"TCD ACIER", "TCD ALU"}]
     
            If Not IsError(Application.Match(Sh.Name, wshSheets, 1)) Then
     
                With Sheets("TCD ALU")
                    Worksheets("TCD ALU").Activate
                    ActiveWindow.Zoom = 120
                    .Range("N2:X49").CopyPicture xlScreen, xlBitmap
                        With .ChartObjects.Add(0, 0, 2400, 1429).Chart
                            .Paste
                            .Export ThisWorkbook.Path & "\test1.gif", "gif"
                        End With
                    .ChartObjects(Sheets("TCD ALU").ChartObjects.Count).Delete
                End With
     
                With Sheets("TCD ACIER")
                    Worksheets("TCD ACIER").Activate
                    ActiveWindow.Zoom = 100
                    .Range("P2:AA18").CopyPicture xlScreen, xlBitmap
                        With .ChartObjects.Add(0, 0, 2400, 1429).Chart
                            .Paste
                            .Export ThisWorkbook.Path & "\test2.gif", "gif"
                        End With
                    .ChartObjects(Sheets("TCD ACIER").ChartObjects.Count).Delete
                End With
     
     
                ActiveWorkbook.Save
            End If
    End Sub
    La macro qui se trouve dans le Module ne se lance que manuellement, mais je voudrais qu'elle aussi se lance dès lors qu'il y a un changement dans une des cellules de TCD ALU ou TCD ACIER :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
        With Worksheets("TCD ALU").Range("a1:a40")
            Dim NLigneDescription As Long
            Dim Dligne As Long
            Cells.Find(What:="Total général", After:=Range("A1"), LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            NLigneDescription = ActiveCell.Row
            Range("A200").Value = NLigneDescription
            Dligne = NLigneDescription + 10
            Range("A201").Value = Dligne
            'Worksheets("TCD ALU").Range("N" & NLigneDescription & ":" & "W" & NLigneDescription).Interior.Color = RGB(222, 0, 0)
         End With
    End Sub
    Il faudrait donc que je la place dans ThisWorkbook, mais là est le problème. Peu importe la façon dont je la place dans l'autre macro, Excel finit par planter. Et lorsque je stoppe l'exécution, j'ai une erreur 91 qui s'affiche.

    Comment faire pour que la macro test s'effectue automatiquement et avant chaque exportation JPG ?

    Je galère là-dessus depuis plusieurs jours, et c'est frustrant puisque c'est la dernière étape de mon travail ...

    Merci infiniment par avance ! Je comtpe sur votre aide !

    PS: si le code n'est pas clair je peux l'expliquer en détail, si nécessaire.

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bon bah finalement c'est geut, un informaticien irl m'ayant aidé sur le problème, il a découvert que la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("A200").Value = NLigneDescription
    crée une boucle infinie puisqu'il y a changement dans une cellule.

    Le pire c'est que cette ligne n'était même pas utile à mon projet, c'était juste une ligne de test pour vérifier que mon code marche bien !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2015, 16h20
  2. Réponses: 2
    Dernier message: 16/02/2014, 16h07
  3. Appeler une fonction de ThisWorkbook depuis un module
    Par MyJero dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/11/2013, 17h15
  4. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  5. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 20h50

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