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 :

Imprimer tant que cellule > 0 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut Imprimer tant que cellule > 0
    Bonjour,
    Je souhaite imprimer, sur appui d'un bouton, la feuille EP BATIMENT (print) qui contient beaucoup de formules, et ce tant que les formules comprises dans la colonne G (de G1 à G1000) retourne une valeur supérieure à 0. Donc, si cellule G80 (qui se trouve sur la page 2) contient une valeur supérieure à 0, les pages 1 et 2 seront imprimées, mais pas les pages suivantes.

    Le code suivant ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub BtnImpBat_Cliquer()
     
    Dim VCase As Long
     
    VCase = Worksheets("EP BATIMENT(Print)").Range("G1000").End(xlUp).Row
    Worksheets("EP BATIMENT(Print)").Range("A1:VCase").PrintOut
     
    End Sub
    Merci de me faire part de votre avis.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    En supposant que les colonnes à imprimer sont les colonnes de A à G (sinon tu adaptes le code), tu peux essayer comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub BtnImpBat_Cliquer()
    Dim i As Long
     
    With Sheets("EP BATIMENT(Print)")
        For i = .Cells(Rows.Count, 7).End(xlUp).Row To 1 Step -1
            If .Cells(i, 7) > 0 Then
                .PageSetup.PrintArea = "A1:G" & i
                .PrintOut
                Exit For
            End If
        Next
    End With
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Un tout grand merci fring. Ca fonctionne tout à fait correctement.

    Est-il cependant possible de modifier la plage de contrôle des cellules supérieures à 0.

    Je m'explique : pûtôt que de controler quelles sont les cellules de la colonne G complète qui sont supérieures à 0, pourrait on contrôler exclusivement les cellulles allant de G9 jusqu'à à la fin de la feuille (ceci afin de ne pas contrôler les lignes de titre qui ne sont effectivement pas vides, et de produire une impression inutile)?

    Merci. Bonne journée.

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    La procédure boucle sur la colonne G entre la dernière ligne utilisée de cette colonne .Cells(Rows.Count, 7).End(xlUp).Row et la ligne 1, il suffit d'adapter ces deux bornes, dans ton cas ça donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = .Cells(Rows.Count, 7).End(xlUp).Row To 9 Step -1
    Step -1 sert à signifier que la boucle doit s'exécuter de bas en haut en remontant d'une cellule à chaque passage

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Encore un tout grand merci.
    Ca fonctionne à merveille!

    J'aurai une autre question afin de savoir s'il est possible de générer des PDF à partir de ces mêmes bases et sans passer par un générateur externe, Mais pour cela, je crée un autre post.

    A bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/03/2014, 17h10
  2. Réponses: 3
    Dernier message: 25/11/2008, 12h15
  3. vba tant que cellule active n'est pas ma cellule
    Par elise1983 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/09/2008, 23h34
  4. [VBA-Excel]Décale colonne tant que valeur cellule ....
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2006, 18h56
  5. [DROIT] Droits d'auteurs moraux en tant que salariés ?
    Par malotte dans le forum Juridique
    Réponses: 14
    Dernier message: 13/02/2003, 16h56

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