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 :

Macro imprime avec condition


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Par défaut Macro imprime avec condition
    Bonjour à tous

    J'ai une macro qui imprime la page 1 de 1
    Après une sélection par filtre.
    Je me retrouve donc avec les lignes 1-2-3-13-25-80-101 selon le filtre (mais toujours avec les lignes 1 et 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub IMP1TO1()
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
    end sub
    La macro fonctionne mais je veut éviter l'impression de la ligne 1.
    Comment l'écrire.

    Merci à tous de vos contribution et bonne fin de dimanche.

    Martial.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Juste à définir la zone d'impression

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Par défaut RE
    Re

    Oui mais la zone d'impression n'est jamais la même avec le filtre.
    En plus je demande d'écrire la macro pas de donner des leçons.

    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 111
    Par défaut re
    Re

    Pour etre plus précis

    Si j'écrits Range("A2:F22").PrintOut (ce qui correspond à la page 1 sans la ligne 1)

    Cela n'imprime pas les lignes au dessus de la 22 car je filtre avant et je me retrouve à la page 1 avec des lignes supérieure à 22.


    Suis je clair

    Encore merci.

  5. #5
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut re
    Citation Envoyé par mavean Voir le message
    Re

    En plus je demande d'écrire la macro pas de donner des leçons.

    Merci.


    Hello,

    Tout d abord , stp essaie d être un peu plus sympa,
    Les personnes sur ce forum ont été pour moi une vraie source d aide et mon permis d apprendre énormément.

    Mais bon je ne suis pas là pour être moralisateur et tu n'as certainement pas voulu être vexant

    Tu pourrais peut-être essayer en fixant la dernière cellule non nul, établir une plage et l imprimer.

    En sélectionnant l impression d une plage comme cité précédemment , tu auras au max jusque là dernière ligne indiqué dans ta macro.

    A test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub imprim()
     
    Dim VDerlig As Long
     
                 Vderlig = .Cells(.Rows.Count, "A").End(xlUp).Row       
                  Range("A2:F" & VDerlig).printOut
     
    End Sub

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par mavean Voir le message
    Re

    En plus je demande d'écrire la macro pas de donner des leçons.

    Merci.
    Ah oui ?
    Pourtant les règles sont claires :
    Nous ne sommes pas là pour faire vos exercices.
    Et puis tu faire un filtre avancé avec extraction sur une autre feuille. Comme tu auras toutes tes lignes à la suite et juste tes lignes, tu peux avoir tes conditions sur ta feuille d'origine et tes réponses filtrées sur ton autre feuille.

    Et puisque tu exportes tes réponses sur une autre feuille, les numéros de lignes qui s'appliquent dont ceux de la feuille des données exportées.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu peux définir ta plage sans macro en lui donnant un nom: zone_d_impression

    C'est un nom de plage réservé qui spécifie la plage à imprimer. Tu n'as plus ainsi à t'en préoccuper au sein de la macro (VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...).

    Dans l'exemple que je t'illustre ci-dessous, la plage est définie par formule pour tenir compte de la dernière ligne saisie en A. Ainsi, quel que soit le filtre appliqué, tu auras toujours ta zone d'impression bien définie.

    Nom : 2018-03-20_074509.png
Affichages : 163
Taille : 20,6 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Macro somme avec condition.
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/02/2012, 17h36
  2. pb facile à resoudre: Macro "INPUTBOX" avec condition "COUNTIF=0"
    Par Olivm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2011, 11h59
  3. imprimer avec condition
    Par kiminfor dans le forum Langage
    Réponses: 21
    Dernier message: 26/04/2009, 19h35
  4. [Macro] Macro variables avec condition
    Par bibette dans le forum Macro
    Réponses: 4
    Dernier message: 07/07/2008, 17h09
  5. macro imprimer un matrice word avec champ excel
    Par stephlinternaute dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/08/2007, 19h00

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