IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Listeview Statistique à imprimer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2022
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 18
    Par défaut Listeview Statistique à imprimer
    Bonjour à tous,

    Je suis face à un problème que je ne trouve pas la solution sur google
    Je veux à la fois imprimer et à la fois exporter les résultats obtenue après sélection (statistiques/rapport) qui se trouve dans le formulaire. Recherche via nom et une lettre à taper et vous obtenez liste de sélection du choix mais quand je clic sur imprimer il me donne toute la feuille (le tableau).

    Comment faire pour imprimer et si on le souhaite l'exporter en csv.

    Merci d'avance.
    A+

    Rapport¨_Print_Exp.xlsm

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 540
    Par défaut
    Salut,

    Le plus simple est de programmer l'évènement BeforePrint du classeur.
    Tu détectes si le formulaire est instancié et visible.
    Tu copie les données dans une feuille temporaire.
    Tu imprimes la feuille, tu l'exportes.
    Tu détruits la feuille temporaire.
    Tu annules l'évènement, histoire que l'impression standard ne prenne pas le relais.

    Les listviews etant un composant COM 32 bits, je ne peut te proposer de code.

  3. #3
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2022
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Novembre 2022
    Messages : 18
    Par défaut
    Bonsoir le forum, Bonsoir deedolith,

    Etant pas bien ds le vba est ce que tu me proposes qqch comme ça ; mais comment copier la sélection vers la feuille2 car le Range dépend de la séléction
    Dans Thisworkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
     For Each wk In Worksheets
     wk.Calculate
     Next
    End Sub

    Dans la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public ouvert As Boolean
     
    Private Sub UserForm01_Activate()
    ouvert = True
     
    If UserForm01.ouvert = True Then UserForm01.Visible = True
    Else
    Worksheets("Etude01").Range("T_Rapport").Copy Worksheets("Feuil2") '.Range("xxxx")
    End If
     
    Worksheets("feuil2").PrintPreview
    Kill Worksheets("feuil2")
     
    End Sub
    Pour d'autres solutions (si peuvent exister) elles sont les bienvenues

    Merci d'avance
    A +

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 540
    Par défaut
    Tu me perds la,
    c'est les données d'un listview ou d'une feuille que tu veux imprimer ?

    Pourquoi recalculer toutes les feuilles ? Je n'en voit pas l'utilité (généralement, on imprime les données que l'on voie à l'instant T, pas à l'instant T+1).

    Si c'est une feuille, pourquoi te faire chier alors que n'importe quel utilisateur peut faire cela en 2 click.
    A moins que le feuille soit masquée, dans ce cas, l'instruction suivante suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Etude01").Range("T_Rapport").PrintPreview
    Quand à verifier si un formulaire visible, on interroge la propriété Visible !!!
    On ne lui crée pas une variable membre publique de surcroit, d'une part c'est redondant, d'autre part c'est à l'encontre de toutes bonne pratique connue (Viole du principe d'encapsulation, viole de la loi de Demeter: https://en.wikipedia.org/wiki/Law_of_Demeter).

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/06/2013, 23h49
  2. imprimer le contenu d'une listeview
    Par timsa7 dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/04/2011, 13h33
  3. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo