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 :

Différence macro pas à pas vs exécution complète malgré application.wait


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    cdg
    Inscrit en
    Août 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : cdg
    Secteur : Finance

    Informations forums :
    Inscription : Août 2021
    Messages : 1
    Par défaut Différence macro pas à pas vs exécution complète malgré application.wait
    Bonsoir à tous,

    je vous écris concernant un problème rencontré sur une macro qui me sélectionne une plage sous excel puis l'enregistre en format JPG à un emplacement donné.
    Elle fonctionne très bien lorsque je la test en mode pas à pas mais lorsque je la lance en complet cela ne donne pas le même résultat. En mode éxécution, l'image enregistrée est blanche et encadrée (fond du graphique crée).

    J'ai essayé d'insérer Application.Wait (Now + TimeValue("0:00:05")) aux endroits clés mais rien n'y fait, je n'ai que les fonds blancs d'enregistrés vs l'image souhaité en mode pas à pas.

    Pouvez vous svp m'aider si quelqu'un a déjà connu ce cas ?

    Merci beaucoup.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Sub creation_images()
     
    Dim i As Variant
    Dim dept As Variant
    Dim nom As Variant
    Dim plage As Range
     
    Sheets("Pivot").Select
     
    i = 2
     
    While Cells(i, 1) <> ""
     
     
    dept = Cells(i, 1)
    nom = Cells(i, 3)
    Sheets(dept).Select
     
     
    With Sheets(dept)
     
    Set plage = .Range("D10:Q389")
     
    plage.CopyPicture
     With .ChartObjects.Add(plage.Left, plage.Top, plage.Width, plage.Height).Chart
            .Paste
            .Export "C:\Users\pchatela\Desktop\Frais Généraux\Dept FGX fichiers détail\" & dept & "\" & nom & ".jpg"
     
     End With
       .ChartObjects(.ChartObjects.Count).Delete
     
     
    End With
     
    Sheets("Pivot").Select
     
    i = i + 1
     
    Wend
     
    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    657
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 657
    Par défaut
    Bonjour,

    A la place du Wait essayes d'utiliser l'instruction DoEvents.

    ONTAYG

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Dans le doute évite les select, tu l'as bien fait au milieu de ta macro mais pas au début
    Et je plussoie l'utilisation du doevents

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Sub creation_images()
     
    Dim i As Variant
    Dim dept As Variant
    Dim nom As Variant
    Dim plage As Range
     
    'Sheets("Pivot").Select
    'i = 2
    'While Cells(i, 1) <> ""
    'dept = Cells(i, 1)
    'nom = Cells(i, 3)
    'Sheets(dept).Select
    with Sheets("Pivot")
    i = 2
    While .Cells(i, 1) <> ""
    dept = .Cells(i, 1)
    nom = .Cells(i, 3)
    end with
     
    With Sheets(dept)
     
    Set plage = .Range("D10:Q389")
     
    plage.CopyPicture
     With .ChartObjects.Add(plage.Left, plage.Top, plage.Width, plage.Height).Chart
            .Paste
            .Export "C:\Users\pchatela\Desktop\Frais Généraux\Dept FGX fichiers détail\" & dept & "\" & nom & ".jpg"
     
     End With
       .ChartObjects(.ChartObjects.Count).Delete
     
     
    End With
     
    'Sheets("Pivot").Select
     
    i = i + 1
     
    doevents
    Wend
     
    End Sub

Discussions similaires

  1. [XL-2010] Macro Excel ne s'exécute pas pour certains utilisateurs
    Par fletellier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2014, 14h41
  2. [XL-2007] Macro qui ne s'exécute pas au bon endroit pour un copier coller
    Par laurasoe dans le forum Macros et VBA Excel
    Réponses: 50
    Dernier message: 24/07/2014, 08h13
  3. Worksheets_change ne se lance pas après exécution macro
    Par d0n32 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2013, 17h18
  4. [XL-2007] excuter une macro pas par pas
    Par iliesss dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2011, 10h02
  5. Macro qui ne s'exécute pas sur les onglets voulus
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/05/2011, 17h17

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