Bonjour à tous,
j'ai réalisé un fichier excel pour mettre en forme un export brut de façon "automatique".
Je me retrouve donc avec une feuille contenant un grand nombre de formules du type =SI(Export!A2>0;Export!A2;"") sur 1500 lignes.
Le souci est que lorsque je souhaite imprimer cette feuille, toutes les lignes contenant ces formules sont imprimées, qu'elle redirige vers une donnée ou non.
Ce classeur est destiné à des agents avec très peu de compétences excel, pour lesquels l'impression d'une sélection, les zones d'impression ou les filtres sont trop compliqués et font perdre du temps.
je suis donc à la recherche d'une solution par vba et en parcourant le forum je suis tombé un code que j'ai adapté à mon fichier :
Sub Imprimer()
Dim n%
Application.EnableEvents = False
n = 3
With Feuil2
Do
If .Cells(n + 1, 1).Value = "" Then .Rows(n + 1).Hidden = True
n = n + 1
Loop While .Cells(n + 1, 1).Formula <> ""
With .PageSetup
.PrintArea = "$A1:H" & n
End With
.PrintOut
.Rows.Hidden = False
End With
Application.EnableEvents = False
End Sub
Ce code fonctionne très bien à un point près : comme il fait intervenir une boucle, le temps d'exécution est très long et variable, allant jusqu'à 8 minutes.
Y'a-t-il un moyen d'optimiser ce code pour mon fichier lui permettant de s'exécuter plus vite, voir d'envisager une autre approche?
ci-joint le fichier en question
merci beaucoup par avance pour votre aide