XL 2010 Macro imprimer, masquer et compacter des lignes

  • Initiateur de la discussion Initiateur de la discussion Orson83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Orson83

XLDnaute Impliqué
Bonsoir à tous,

Je cherche à imprimer des pages séparément et à masquer l'impression des certaines lignes inutiles.

L'idée est de compacter les différents espaces vides entre chaque tableau en laissant 1 ligne vide uniquement (ligne blanche).

En effet, je n'ai pas d'autre choix que de garder un visuel de page un peu boiteux ce qui m'oblige à bricoler pour pouvoir imprimer correctement.

Du coup, j'aimerai imprimer sur 2 pages, masquer une série de lignes inutiles et mettre en blanc des lignes visibles (grises actuellement).

Par la même occasion, j'aimerai aussi régler la mise en page selon des mages définies dans le codage.

J'ai déjà codé mais bien sûr ça ne marche pas. Le code se trouve dans VBAProject > Feuil1

Je joins mon fichier exemple dans ce post.

Merci pour votre aide.

François
 

Pièces jointes

Bonjour Tchotchodu31, fanch55,

Ceci est plus simple :
VB:
Sub Imprimer()
Feuil1.Copy 'Nouveau document
With ActiveSheet
    .[20:22,41:63,75:80].EntireRow.Hidden = True  'Masque une sélection de lignes
    .[C4,C19,C32,C40,C74].EntireRow.Interior.ColorIndex = xlNone 'Intérieur incolore des lignes 4,19,32,40,74
    .[C33:D33].Interior.Color = [C5].Interior.Color 'Gris
    With .PageSetup
        .PrintArea = "C3:D40,C64:D89" 'Zones de la page 1 et 2
        .LeftMargin = Application.InchesToPoints(0.8) 'Marge gauche
        .RightMargin = Application.InchesToPoints(0.8) 'Marge droite
        .TopMargin = Application.InchesToPoints(0.8) 'Marge haut de page
        .BottomMargin = Application.InchesToPoints(0.8) 'Marge bas de page
    End With
    .PrintPreview 'Aperçu pour tester
    '.PrintOut 'Pour imprimer
    .Parent.Close False 'Ferme le document
End With
End Sub
A+

Bonsoir job75,

Parfait, effectivement le code est plus simple et il fonctionne très bien.

Merci pour ton aide et celle de fanch55.

Petite question : en imaginant que depuis la feuil1 (1 bouton) je doive imprimer la feuil2 (plage A2:F25) et la feuil3 (plage B5:G32).

Ceci est-il possible avec une Macro?

Bonne soirée.

François
 
Cela n'aurait aucune importance, la feuille est copiée comme elle est.
Désolé, j'ai testé : le copy par défaut se fait dans un nouveau classeur .
La feuille est portée avec tout son code, les modules ne sont pas dupliqués.
Donc, si on a des formules "personnelles", elles plantent.
S'il y a un Worksheet_Activate effectuant au préalable certaines opérations se trouvant dans le module d'origine, l'activation plante .

On peut effectivement préciser au copy de le faire dans le worksheet en cours :

Feuill1.copy after:=activesheet

mais on peut se heurter également au problème du Worksheet_Activate de cette nouvelle feuille . 🙄

Mais ce n'est pas le cas ni le propos de ce fil , ta solution colle pile/poil au cas présent .
 
Désolé, j'ai testé : le copy par défaut se fait dans un nouveau classeur .
La feuille est portée avec tout son code, les modules ne sont pas dupliqués.
Donc, si on a des formules "personnelles", elles plantent.
S'il y a un Worksheet_Activate effectuant au préalable certaines opérations se trouvant dans le module d'origine, l'activation plante .

On peut effectivement préciser au copy de le faire dans le worksheet en cours :

Feuill1.copy after:=activesheet

mais on peut se heurter également au problème du Worksheet_Activate de cette nouvelle feuille . 🙄

Mais ce n'est pas le cas ni le propos de ce fil , ta solution colle pile/poil au cas présent .

D'accord, merci d'avoir regardé.

Bonne soirée à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour