OVH Cloud OVH Cloud

cacher reafficher lignes

4 réponses
Avatar
surplus
Bonjour,
j'ai une feuille dot 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
http://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

4 réponses

Avatar
Jacquouille
Bonjour
Les sages de ce forum m'ont toujours suggéré de ne pas utiliser les fameux
Select. cela ralentit très fort le déroulement de la macro.
Au pire, ceci ne ferait-il pas l'affaire?
Range("C3:ac72").PrintOut Copies:=1,

Ensuite, dans ta condition (si c est vide:Range("C" & i) = 0), le zéro
est-il le meilleur? ne serait-ce pas mieux ="" ?


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"surplus" a écrit dans le message de groupe de discussion :


Bonjour,
j'ai une feuille dot 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
http://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
Avatar
MichD
Bonjour,

Essaie cette macro :

'------------------------------------------------
Sub test()
With Feuil1
.Range("C3:C72").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
With .PageSetup
.PrintArea = Feuil1.Range("A3:AC72").Address
End With
.PrintPreview 'à remplacer par .printout après tes tests
With .PageSetup
.PrintArea = ""
End With
.Range("C3:C72").EntireRow.Hidden = False
End With
End Sub
'------------------------------------------------


MichD
--------------------------------------------------------------
Avatar
MichD
J'ai omis, en début de macro, tu devrais ajouter la ligne suivante :

On Error Resume Next


Essaie cette macro :

'------------------------------------------------
Sub test()
On Error Resume Next
With Feuil1
.Range("C3:C72").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
With .PageSetup
.PrintArea = Feuil1.Range("A3:AC72").Address
End With
.PrintPreview 'à remplacer par .printout après tes tests
With .PageSetup
.PrintArea = ""
End With
.Range("C3:C72").EntireRow.Hidden = False
End With
End Sub
'------------------------------------------------


MichD
--------------------------------------------------------------
Avatar
surplus
Le samedi 01 Septembre 2012 à 19:13 par surplus :
Bonjour,
j'ai une feuille dot 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
http://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


bonjour
merci pour la réponse
je verrai laquelle des 2 est plus rapide
merci
a bientot