RESOLU - Feuille de visite - Merci phlaurent55

castor30

XLDnaute Occasionnel
Bonjour
Je trouve le temps d'exécution de ce code un peu long (15 secondes)
Peut-il être améliorer
En vous remerciant
VB:
Sub Impression()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Range("G2").Select

    For I = 2 To Range("A300").End(xlUp).Row
            If UCase(Cells(I, 5)) <> "X" Then
                 Rows(I).Hidden = True
            Else
                 I = I + 1
             End If
    Next I
  
'    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ActiveWindow.SelectedSheets.PrintPreview
    Columns("A:E").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=5
    Selection.AutoFilter
    SupSelect
    Range("A2").Select
CreateObject("Wscript.shell").Popup "Impression envoyée à l'imprimante." & Chr(10) & Chr(10) & "Veuillez patienter Svp." & Chr(10) & Chr(10), 1, "Association", vbExclamation
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Sub SupSelect()
    Range("E2:E300").ClearContents
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour à tous,

re,
Presque ça, ça devient rapide il faut que ça trie la ligne ou X est présent avec la ligne immédiatement en dessous, soit 2 lignes par 2 lignes.
Pour un premier code, j'en bave.

@castor,

je t'ai déjà apporté des réponses sur ce fil de discussion
https://www.excel-downloads.com/thr...auche-dans-cellule-e1.20017797/#post-20130029

tu as reçu le code pour filtrer et ça fonctionnait selon tes souhaits
concernant l'impression, je ne vois pas pourquoi ce serait lent mais je constate beaucoup de lignes inutiles dans le code que tu présente au post#1

remet ton fichier réel (sans données confidentielles) et reprécise tes attentes sinon on ne va pas en finir

à+
Philippe
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re bonjour à tous

Dans le module imprimer, tu peux TOUT supprimer et mettre uniquement ce code qui effectue le filtrage ET l'impression
à toi d'adapter le nombre de copies à ta convenance

Code:
Sub Impression()   'Filtre la sélection des X et imprime et retour initial
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False


    For I = 2 To Range("A300").End(xlUp).Row
            If UCase(Cells(I, 5)) <> "X" Then
                 Rows(I).Hidden = True
            Else
                 I = I + 1
             End If
    Next I
   
ActiveSheet.PrintOut Copies:=1
Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

à+
Philippe
 

Discussions similaires

Réponses
8
Affichages
653
Réponses
7
Affichages
477

Statistiques des forums

Discussions
314 162
Messages
2 106 603
Membres
109 637
dernier inscrit
lafforest