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 :

[VBA-E]exécution lente de la macro après aperçu


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut [VBA-E]exécution lente de la macro après aperçu
    Bonjour,

    J'ai écrit une macro qui s'exécute automatiquement à chaque clic différent sur la feuille (Worksheet_SelectionChange). Cette macro est à destination d'autres utilisateurs.
    L'exécution de cette macro est rapide et ne gêne pas l'utilisateur. Le problème vient après que l'utilisateur clique sur "aperçu avant impression". De retour à la feuille, l'exécution de la macro est beaucoup plus lente et devient gênante.
    Quelqu'un pourrait-il me renseigner sur le sujet ?

    Merci d'avance,

    Cwain

    (Config : Excel 2003 professional edition)

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    et que fait la macro?

  3. #3
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Voilà le contexte :
    Recherche de mots clés (pour éviter que la macro marche plus si l'utilisateur rajoute des lignes etc...)
    sur quelques cases, apparition d'une boite de dialogue sélectionner ? oui/non pour mettre en forme la ligne entière

    heu désolé, je sais pas si ya une manière plus classe de mettre le code dans ce message
    Embarassed

    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
    45
    46
    47
    48
    49
    50
    51
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim LigneDebut As Integer
    Dim LigneMilieu As Integer
    Dim LigneFin As Integer
    Dim Colonne As Integer
     
    Colonne = ActiveCell.Column
    LigneDebut = Cells.Find(What:="production", After:=ActiveCell, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False).Row
     
    LigneMilieu = Cells.Find(What:="logistique", After:=ActiveCell, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False).Row
     
    LigneFin = Cells.Find(What:="totaux", After:=ActiveCell, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False).Row
     
    'sélection de l'étape ou non
     
    If Colonne = 5 And (ActiveCell.Row > LigneDebut And ActiveCell.Row < LigneFin) Then
            UserForm1.Show
    End If
     
    'pour mettre en gras la ligne sélectionnée
     
    For i = LigneDebut + 1 To LigneFin - 1
        If i <> LigneMilieu Then
            If Cells(i, 5).Value = "X" Then
                With Range(i & ":" & i)
                    With .Font
                        .Bold = True
                        .Color = black
                    End With
                End With
     
            Else
     
                With Range(i & ":" & i)
                    With .Font
                        .Bold = False
                        .Color = RGB(100, 100, 100)
                    End With
                End With
            End If
        End If
    Next
     
    End Sub
    Balises [code][/code] ajoutées par ridan, penses-y la prochaine fois ... merci

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il me semble qu'Ouskel'n'or, Bbil et Megaxel ont expliqué plusieurs fois qu'il valait mieux inhiber l'affichage pendant ces travaux là (ta boucle).

  5. #5
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    oui, mais l'exécution passant inaperçue la plupart du temps, j'ai oublié d'inhiber l'affichage, ce que je vais faire. Mais je ne comprend pas pourquoi le fait d'utiliser l'aperçu avant impression ralentisse la macro

    Merci pour le rappel

  6. #6
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    Citation Envoyé par cwain
    heu désolé, je sais pas si ya une manière plus classe de mettre le code dans ce message
    oui, sélectione le et clique sur le bouton [Code]
    désolé, mais je n'ai pas plus d'idée (voire moins) que jfmarques pour ton problème...


    Edit, ça ralentis l'impression, par-ce que ça rajoute des procédures d'affichage qui doivent charger le mémoire ou la pile et doivent rester lattent même après fermeture. ([troll]c'est du code M$ donc...[/troll])

    salut

  7. #7
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    OK merci, ça marche de nouveau bien en bloquant l'affichage !


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

Discussions similaires

  1. [Toutes versions] continuer l'exécution de la macro après un userForm.show
    Par _Jnie_ dans le forum VBA Word
    Réponses: 4
    Dernier message: 28/12/2011, 18h35
  2. [AC-2000] exécuter une macro apres un export
    Par teen6517 dans le forum VBA Access
    Réponses: 10
    Dernier message: 09/09/2010, 12h09
  3. [VBA-EXCEL]Exécution de macro
    Par fab78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/08/2006, 12h55
  4. [VBA-E]Exécution d'une macro en arrière-plan
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/04/2006, 23h13
  5. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00

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