XL pour MAC aide pour macro VBA tri et zone d'impression selon une date

Toto40

XLDnaute Nouveau
Bonjour, je débute en VBA et donc j'ai besoin de votre aide pour finaliser une macro.
Pour mon asso de joueurs d'échecs, j'ai une liste excel où je note ligne par ligne les résultats des matchs du jour. Je souhaite par une macro unique associée à un bouton (ça je sais faire) :
1/ trier les enregistrements par ordre chronologue (date en colonne A),
2/ définir une zone d'impression uniquement sur les enregistrements d'une date particulière. Par défaut, ce sera la date du jour mais il peut arriver que je veuille imprimer les lignes d'une date à choisir. Mon tableau va des colonnes A à E.
3/ préprogrammer l'impression sur "imprimer sur 1 page en largeur et 1 par en hauteur"
3/ afficher la boîte de dialogue "imprimer"
Merci beaucoup !
 

job75

XLDnaute Barbatruc
Bonjour Toto40, mutzik, le forum,

Voyez le fichier joint et ces macros dans ThisWorkbook (Alt+F11) :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With Sh
    If .CodeName <> "Feuil1" Or Intersect(Target, .[A:E]) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    If .FilterMode Then .ShowAllData 'RAZ
    .PageSetup.PrintArea = .Range("A2:E" & .Range("A" & Rows.Count).End(xlUp).Row).Address 'zone d'impression
    If .[A1] = "Tout" Or .[A1] = "" Then Exit Sub
    .[G3] = "=A3=--A$1" 'critère de filtrage
    .Range(.PageSetup.PrintArea).AdvancedFilter xlFilterInPlace, .[G2:G3] 'filtre avancé
    .[G3] = ""
End With
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Workbook_SheetChange ActiveSheet, [A1] 'au cas où la zone d'impression a été effacée
End Sub
Le tableau est filtré et la zone d'impression définie quand on modifie la plage A:E.

Pour imprimer utilisez simplement la commande dédiée d'Excel.

A+
 

Pièces jointes

  • Filtrer(1).xlsm
    19.3 KB · Affichages: 17

Discussions similaires

Haut Bas