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 :

Utilisation de" Application.ScreenUpdating = False/True"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 120
    Par défaut Utilisation de" Application.ScreenUpdating = False/True"
    Bonjour,

    pas très costaud en Excel VBA mais demandeur, j'ai le problème suivant :

    Dans une feuille j'ai 8 images en Ligne 7 et colonnes 97, 99, 101, 103, 105, 107, 109, 111
    Je les transfère successivement en Cells(7,4) avec une rémanence de 300 ms
    Il se trouve qu'à chaque passage (ou presque) d'une nouvelle image, un petit saut d'écran est perceptible.
    Je voudrais que l'affichage de chaque nouvelle image se fasse par superposition sans vibration.
    Est-ce possible ?
    Je vous transfère mon code . . . Excusez-moi s'il est primaire, mais c'est tout ce que je sais faire pour l'instant.
    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
     
    Sub Macro5()
    '
        Application.ScreenUpdating = False
    '
    '   La DESTINATION" de l'image transférée sera toujours     Cells(7,4)
    '   ------------------------------------------------------------------
    '
    '
    '   8 images sont à transférer ( toujours en ligne 7  et Colonnes 97, 99, 101, 103, 105, 107, 109, 111)
    '   --------------------------------------------------------------------------------------------------
    '
        For n = 1 To 8
            Col = (n * 2) + 95
    '
    '       Effacement de la zone réception
    '       -------------------------------
            For Each s In ActiveSheet.Shapes
                If Not Intersect(s.TopLeftCell, Range("C6:E8")) Is Nothing Then
                s.Delete
                End If
            Next s
    '
    '       Transfert d'une des 8 images "ORIGINE" vers la "DESTINATION"
    '       -----------------------------------------------------------
            Cells(7, Col).Select
            Selection.Copy
            Cells(7, 4).Select
            ActiveSheet.Paste
            Application.ScreenUpdating = True               ' pour rendre visible l'image transférée
            Application.ScreenUpdating = False              ' --------------------------------------
            Sleep 300
        Next
    '
    End Sub
    Cordiales salutations

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    sans analyser ton code, je mettrais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    juste après "Sub" ou après les déclarations de variable (que je n'ai pas vues) et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    juste avant "End Sub"
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 120
    Par défaut
    Merci Casefayere,

    mais ta proposition n'est pas bonne.
    Si je fais ce que tu dis, les images 1 à n'apparaissent pas (elles sont toujours sous la condition Application.ScreenUpdating = Falseet en fin de programme seule la dernière est visualisée car juste avant le End Sub il y a eu Application.ScreenUpdating = TrueCe qui me parait tout à fait normal.

    Merci de me dire ce qui ne va pas.

    Cordiales salutations.

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