Masquer,imprimer reafficher

Résolu
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour
j'ai une feuille dont je veux imprimer les lignes de 3 a 72
et masquer les lignes si dans colonne C la case est vide
et après le PrintPreview et imprimer ré afficher les lignes masqués
j'ai fait la macro qui fonctionne mais qui est trop longue a l exécution
je vous mets le fichier joint
https://www.cjoint.com/?BIbtfICtVLx
si vous pouvez me la corriger pour une exécution plus rapide et me dire ou est l'erreur
merci
a bientot

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Ton code est correct , tu peux l'accélérer avec :
    Sub imprim()
    '
    ' imprim Macro
    Dim i%
    
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
         
        For i = 5 To 72
            Rows(i).Hidden = Range("C" & i) = 0
        Next
    
        ActiveSheet.PageSetup.PrintArea = "$C$3:$AC$72"
        ActiveSheet.PrintPreview
        Rows("5:72").Select
        Selection.EntireRow.Hidden = False
        Range("A1").Select
        
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    
    End Sub


    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      bonjour
      tu as rajoute
      Application.Calculation = xlCalculationAutomatic
      Application.ScreenUpdating = True
      il y est 2 fois pourquoi cela accélère la macro ?
      merci
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Cela évite qu'Excel perde son temps (et donc le tien !) à mettre à jour l'affichage et à refaire inutilement les calculs pendant le déroulement de la macro.

      au début on interrompt ces opérations et à la fin on les restitue
      0