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 :

Liste déroulante et macro aperçu avant impression


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
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut Liste déroulante et macro aperçu avant impression
    Bonjour,

    Je souhaite réaliser un aperçu avant impression,

    A partir d'une liste déroulante je souhaite sélectionner l'onglet pour avoir l'aperçu dans un second temps (onglets de septembre à aout).

    Exemple : je sélectionne le mois de septembre il fait un aperçu du mois de septembre pour qu'ensuite je puisse imprimer.

    Précision : J'ai définis les zones d'impressions dans chacun des onglets concernés "B10:AB167" et les onglets sont filtrés de manières à ne pas afficher certaines lignes vides. (ces éléments sont justes pour informations)

    => Avec une macro je connais la commande print preview mais mes connaissances en VBA sont basiques ; Est-ce qu'il faut insérer un contrôle "ActiveX" avec une zone de liste ou un contrôle ou une simple liste déroulante suffit ?

    Source : http://www.cjoint.com/data/0DcmETt2hyT.htm

    Merci d'avances.

    Toute aides est la bienvenue

    Cordialement,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur en temps libre
    Inscrit en
    Février 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur en temps libre
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 68
    Par défaut
    Bonjour,

    tu peux faire les deux:

    si tu choisi le control activeX il faudra que tu insères ton code de preview dans l'évenement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListBox1_Click()
     
    End Sub
    J'ai mis "Click" mais ça peut-être n’importe quel événement géré par cet objet.


    Sinon, tu mais une liste déroulante sur celulle, A1 par exemple, et ensuite tu met ton code de preview dans l’événement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Désactive les événements, car si cette procédure modifie une cellule de cette feuille, cela va créer un boucle récursive
    Application.EnableEvents = False
     
    'Vérifier que c'est la cellule A1 qui déclenche l’événement
    if target.address = "A1" then
    'lancer la procédure de preview
    end if
    'réactive les évènements à la fin de la procédure
    Application.EnableEvents = true
     
    End Sub
    Pour info je n'ai pas ouvert ton fichier .xlsm voir le post de Pierre Fauconnier...

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    @Aposto

    Attention à Address

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if target.address="$A$1" then

  4. #4
    Membre éprouvé
    Homme Profil pro
    Programmeur en temps libre
    Inscrit en
    Février 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur en temps libre
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 68
    Par défaut
    Très juste

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Par défaut
    Tout d'abord, merci pour votre aide.

    J'ai essayé mais j'ai un peu de mal, je suis un novice dans la macro et j'aimerai comprendre d'où peux venir l'erreur.
    J'ai peut être mal compris un élément, ou il y a une étape que j'ai loupé.

    Ce que j'ai fais :
    Etape 1 - Création d'une liste déroulante dans le MENU en cellule A1 (j'ai renseigné les valeurs de la liste déroulante il correspond au nom des différents onglets à choisir pour avoir en aperçu : septembre, octobre, novembre, décembre, janvier, février, mars, avril, mai, juin, juillet, aout. La liste déroulante permettant de sélectionner le mois à avoir en vision avant de lancer l'impression.

    Etape 2 - dans mon onglets feuille "menu" ; j'ai remplacé le code existant par celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Désactive les événements, car si cette procédure modifie une cellule de cette feuille, cela va créer un boucle récursive
    Application.EnableEvents = False
     
    'Vérifier que c'est la cellule A1 qui déclenche l’événement
    if target.address="$A$1" then
    'lancer la procédure de preview
    end if
    'réactive les évènements à la fin de la procédure
    Application.EnableEvents = true
     
    End Sub
    une fois terminé, j'ai testé mais rien ne se passe (sachant que je filtre mes données avant et qu'il y a déjà des macros créées, Est-ce un problème d'incompatibilité ?).

    Merci d'avances.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Programmeur en temps libre
    Inscrit en
    Février 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur en temps libre
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 68
    Par défaut
    Bonjour a tous,

    en fait la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'lancer la procédure de prewiew
    était à compléter par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Target.Value).PrintPreview
    .

    Ps: un bon moyen pour apprendre petit à petit, à chaque fois que tu ne comprend pas une instruction ou que tu cherche une méthode d'un objet, appuies sur F1 avec le curseur sur l'objet ou l'instruction et tu auras directement l'aide correspondante.

    N'hésites pas si tu as d'autres questions.

Discussions similaires

  1. Concepteur RAVE sous DELPHI 7 : aperçu avant impression
    Par tarbala dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/06/2020, 00h37
  2. Aperçu avant impression d'un TRichEdit
    Par PoOky dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/01/2016, 23h19
  3. [WD-2003] Formulaire et macro aperçu avant impression
    Par mikadoo57 dans le forum VBA Word
    Réponses: 10
    Dernier message: 10/02/2013, 10h37
  4. Aperçu avant impression
    Par Zebulon777 dans le forum Access
    Réponses: 18
    Dernier message: 15/09/2005, 10h46
  5. [Débutante] Aperçu avant impression d'un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/07/2004, 09h52

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