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 :

Définir une zone d'impression


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Par défaut Définir une zone d'impression
    Bonjour

    Je voulais savoir si en VBA il etait possible, de definir une zone dimpression, qui se définit automatiquement selon des critères simples ??

    Exemple :

    Zone a imprimer C1:J30
    Si ligne de C1 à C8 >0 Zone d'impression C1:J8

    Colonne e reference "C"

    Voilà, j'espère avoir été clair

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private sub imprime
    Sheets("Planning").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End sub
    Cordialement

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Vu avec l'enregistreur de macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = "$C$1:$J$8"
    Voila, j'espère que ça répond à ta question

    Si tu veux trouver la première ligne dans une plage, il y a pleins d'exemples sur le forum.

  3. #3
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 401
    Par défaut
    Zone a imprimer C1:J30
    Si ligne de C1 à C8 >0 Zone d'impression C1:J8

    Colonne e reference "C"

    Voilà, j'espère avoir été clair
    Personnellement, je n'ai rien compris.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Par défaut Définir une zone d'impression
    Ce que je voulais dire c'est que la zone sera variable elle ne sera pas toujours compris dans la zone C1:J8

    Au maximum elle sera dans cette zone çi :C1:J30
    mais en attendant, je peux avoir qu'une seule ligne a imprimer la première fois, ensuite 5, puis 10 cela reste variable, maxi 30 lignes, mais si je dois imprimer les 30 lignes a chaque fois cela se fait sur 5 feuilles, c'est pour cela que j'aimerais que la zone d'impression se définisse toute seule, selon que la colonne de référence "C" soit remplie ou non, si il y a quelque chose dans la colonne "C" je selectionne toutes la lignes et ainsi de suite, si vide alors fin de la zone d'impression.

    J'espère avoir été clair dans mes explications.

    merci encore

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    D'après ce que je comprend :
    Définir la zone d'impression de la premiere ligne C à la derniere remplie, jusqu'a la colonne J

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro2()
     
    Dim maplage As Range
    Set maplage = Range("C1" & ":" & "J" & Range("C65536").End(xlUp).Row)
     
    ActiveSheet.PageSetup.PrintArea = Malage
     
    End Sub

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Par défaut Définir une zone d'impressio
    Bon voilà, ce que cela donne avec ton code, mais cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Imprimer_Click()
    Dim maplage As Range
    Set maplage = Range("AJ1" & ":" & "AY" & Range("AJ65536").End(xlUp).Row)
     
    ActiveSheet.PageSetup.PrintArea = Malage
    Sheets("Elec").Select
    Nouvelle_Piece.Hide
        ActiveWindow.SelectedSheets.PrintPreview 'pour voir si cela definis bien la zone
    Nouvelle_Piece.Show
    End Sub

  7. #7
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    désolé faute de frappe

    Essai avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = Maplage.Address

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Par défaut Définir une zone d'impression
    Bien mieux, donc cela sélectionne bien la sone voulu en largeur donc AJ:AY, mais selectione, même le case vide en hauteur, soit 117 lignes ce qui est la grandeur maximum de mon tableau.

    Est ce que le fait qu'il y est une formule dans la cellule "AJ", qui fait que cela ne fonctionne pas, certainement, alors si oui comment détourner le problème.

    Sinon j'ai supprimer les formules des cellules AJ afin de voir le comportement de la formule, cela fonctionnerait, mais voilà c'est que AJ est une fusion de 4 ligne a chaque fois, et avec la formule en zone d'impression il ne definis qu'une seule ligne sur les 4 (la première), voilà

    donc si tu as 2, 3 idées je suis preneur
    et encore merci.

Discussions similaires

  1. Définir une zone selectionnée en zone d'impression
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/03/2015, 14h52
  2. En VBA définir une zone d'impression
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/01/2013, 16h57
  3. Définir une zone selectionnée en zone d'impression
    Par tom0ne dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/06/2012, 16h40
  4. [XL-2007] définir une zone d'impression en fonction du nombre de ligne.
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2012, 23h14
  5. définir une zone d'impression sous Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2005, 12h26

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