Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Imprimer toutes les resultats d'un filtre automatisue

3 réponses
Avatar
hervé
bonjour
Apr=E8s avoir s=E9lectionne plusieurs colonnes d'une feuille, je
souhaiterais imprimer automatiquement tout les r=E9sultats du filtre
s=E9lectionne, je suis pas sur d'=EAtre clair.
si vous avez compris merci de votre aide

3 réponses

Avatar
MichD
Bonjour,


Cette macro imprime la plage de données sur laquelle tu as effectué un filtre,
C'est-à-dire la plage de données que tu as sélectionnée avant d'appeler la
commande "Filtre" ou "Filtre avancé". Si tu n'as pas restreint le filtre à une
section d'un tableau en te contentant de placer seulement le curseur dans le
tableau des données, c'est tout le tableau qui sera affiché.

Colle ceci dans un MODULE STANDARD :
'-------------------------------------
Sub Imprimer_Résultat_Filtre()
With Worksheets("Feuil1") 'Nom de la feuille à adater
If .FilterMode = True Then
.PageSetup.PrintArea = ""
.PageSetup.PrintArea = .Range("_FilterDataBase").Address
'Après test si tout est correct, tu changes
'PrintPreview pour PrintOut
.PrintPreview '.printOut
.PageSetup.PrintArea = ""
Else
MsgBox "Aucun filtre est présent sur la feuille."
End If
End With
End Sub
'-------------------------------------


Si à chaque fois que tu cliques sur le bouton imprimer de la barre d'outils de la feuille de calcul,
tu veux TOUJOURS imprimer seulement la plage filtrée, tu peux utiliser la procédure
événementielle suivante du ThisWorkbook pour lancer la procédure "Imprimer_Résultat_Filtre"

'------------------------------------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In ActiveWindow.SelectedSheets
Cancel = False
If Sh.Name = "Feuil1" Then ' nom de la feuille à imprimer à adapter
Application.EnableEvents = False
Call Imprimer_Résultat_Filtre
Application.EnableEvents = True
Cancel = True
End If
Next
End Sub
'------------------------------------------------------------------




MichD
------------------------------------------
"hervé" a écrit dans le message de groupe de discussion :


bonjour
Après avoir sélectionne plusieurs colonnes d'une feuille, je
souhaiterais imprimer automatiquement tout les résultats du filtre
sélectionne, je suis pas sur d'être clair.
si vous avez compris merci de votre aide
Avatar
hervé
On 9 oct, 12:25, "MichD" wrote:
Bonjour,

Cette macro imprime la plage de donn es sur laquelle tu as effectu un fil tre,
C'est- -dire la plage de donn es que tu as s lectionn e avant d'appeler l a
commande "Filtre" ou "Filtre avanc ". Si tu n'as pas restreint le filtre une
section d'un tableau en te contentant de placer seulement le curseur dans le
tableau des donn es, c'est tout le tableau qui sera affich .

Colle ceci dans un MODULE STANDARD :
'-------------------------------------
Sub Imprimer_R sultat_Filtre()
With Worksheets("Feuil1")  'Nom de la feuille adater
    If .FilterMode = True Then
        .PageSetup.PrintArea = ""
        .PageSetup.PrintArea = .Range("_FilterDataBase").Addres s
        'Apr s test si tout est correct, tu changes
        'PrintPreview pour PrintOut
        .PrintPreview  '.printOut
        .PageSetup.PrintArea = ""
    Else
        MsgBox "Aucun filtre est pr sent sur la feuille."
    End If
End With
End Sub
'-------------------------------------

Si chaque fois que tu cliques sur le bouton imprimer de la barre d'outils de la feuille de calcul,
tu veux TOUJOURS imprimer seulement la plage filtr e, tu peux utiliser la proc dure
v nementielle suivante du ThisWorkbook pour lancer la proc dure "Imprimer _R sultat_Filtre"

'------------------------------------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In ActiveWindow.SelectedSheets
    Cancel = False
    If Sh.Name = "Feuil1" Then  ' nom de la feuille imprimer adap ter
        Application.EnableEvents = False
        Call Imprimer_R sultat_Filtre
        Application.EnableEvents = True
        Cancel = True
    End If
Next
End Sub
'------------------------------------------------------------------

MichD
------------------------------------------
"herv "  a crit dans le message de groupe de discussion :


bonjour
Apr s avoir s lectionne plusieurs colonnes d'une feuille, je
souhaiterais imprimer automatiquement tout les r sultats du filtre
s lectionne, je suis pas sur d' tre clair.
si vous avez compris merci de votre aide



Bonjour MichD
merci pour votre aide
je cherche à imprimer une sélection de colonnes, chacun des choix du
filtre automatique activé, sans avoir à sélectionner les suivants.
Avatar
MichD
à défaut d'une définition plus claire de ton problème,

voici ce que j'ai supposé :

Tu as une plage de cellules sur laquelle est appliqué un filtre automatique.
Tu veux seulement imprimer les colonnes de cette plage sur laquelle il y a
un filtre appliqué. En conséquence, la procédure masque toutes les autres
colonnes et n'imprimer que celles qui ont reçu un critère de filtre.

Si la feuille n'a reçu aucun filtre, rien ne sera imprimé.

'---------------------------------
Sub test()
Dim F As AutoFilter, A As Integer

'Test s'il y a un filtre en application sur la feuille
If Worksheets("Feuil1").FilterMode = True Then
Set F = Worksheets("Feuil1").AutoFilter
Else
MsgBox "Aucun filtre en application dans la feuille"
Exit Sub
End If
With F.Filters
'Une boucle sur chacune des colonnes du filtre
For A = 1 To .Count
'Si la colonne est non filtrée, elle est masquée
If .Item(A).On = False Then
F.Range(1, A).EntireColumn.Hidden = True
End If
Next
End With
'impression de la feuille
With Worksheets("Feuil1")
.PageSetup.PrintArea = F.Range.Address
.PrintPreview 'à remplacer par .PrintOut
.PageSetup.PrintArea = ""
F.Range.Columns.Hidden = False
End With
End Sub
'---------------------------------



MichD
------------------------------------------
"hervé" a écrit dans le message de groupe de discussion :


On 9 oct, 12:25, "MichD" wrote:
Bonjour,

Cette macro imprime la plage de donn es sur laquelle tu as effectu un filtre,
C'est- -dire la plage de donn es que tu as s lectionn e avant d'appeler la
commande "Filtre" ou "Filtre avanc ". Si tu n'as pas restreint le filtre une
section d'un tableau en te contentant de placer seulement le curseur dans le
tableau des donn es, c'est tout le tableau qui sera affich .

Colle ceci dans un MODULE STANDARD :
'-------------------------------------
Sub Imprimer_R sultat_Filtre()
With Worksheets("Feuil1") 'Nom de la feuille adater
If .FilterMode = True Then
.PageSetup.PrintArea = ""
.PageSetup.PrintArea = .Range("_FilterDataBase").Address
'Apr s test si tout est correct, tu changes
'PrintPreview pour PrintOut
.PrintPreview '.printOut
.PageSetup.PrintArea = ""
Else
MsgBox "Aucun filtre est pr sent sur la feuille."
End If
End With
End Sub
'-------------------------------------

Si chaque fois que tu cliques sur le bouton imprimer de la barre d'outils de la feuille de calcul,
tu veux TOUJOURS imprimer seulement la plage filtr e, tu peux utiliser la proc dure
v nementielle suivante du ThisWorkbook pour lancer la proc dure "Imprimer_R sultat_Filtre"

'------------------------------------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In ActiveWindow.SelectedSheets
Cancel = False
If Sh.Name = "Feuil1" Then ' nom de la feuille imprimer adapter
Application.EnableEvents = False
Call Imprimer_R sultat_Filtre
Application.EnableEvents = True
Cancel = True
End If
Next
End Sub
'------------------------------------------------------------------

MichD
------------------------------------------
"herv " a crit dans le message de groupe de discussion :


bonjour
Apr s avoir s lectionne plusieurs colonnes d'une feuille, je
souhaiterais imprimer automatiquement tout les r sultats du filtre
s lectionne, je suis pas sur d' tre clair.
si vous avez compris merci de votre aide



Bonjour MichD
merci pour votre aide
je cherche à imprimer une sélection de colonnes, chacun des choix du
filtre automatique activé, sans avoir à sélectionner les suivants.