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

Excel Discussion :

Modifier automatiquement une zone d'impression [XL-2003]


Sujet :

Excel

  1. #1
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut Modifier automatiquement une zone d'impression
    Bonjour,

    Je dispose d'un tableau allant de A1 à G2000, dans lequel les données sont saisies journellement.
    Je cherche le moyen de n'imprimer le tableau mais uniquement que jusqu'à la derniére ligne saisie tout en sachant qu'il y a des formules dans 5 colonnes.

    Ex: aujourdhui, j'ai saisi jusqu'à la ligne 52 dont ne doit etre imprime le tableau de A1 à G52.

    Demain, je continue mes saisies et je m'arrête à la ligne 73 donc l'impression devra aller de A1 à G73.

    Cordialement,
    ______ Graphikris

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    vous vous placez sur la dernière cellule saisie puis au clavier: CTRL+SHIFT+HOME
    ensuite cliquer sur imprimer et dans la boîte de dialogue d'impression (ou dans l'onglet backstage) choisir imprimer uniquement la sélection)

  3. #3
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Benjîle Voir le message
    vous vous placez sur la dernière cellule saisie puis au clavier: CTRL+SHIFT+HOME
    ensuite cliquer sur imprimer et dans la boîte de dialogue d'impression (ou dans l'onglet backstage) choisir imprimer uniquement la sélection)
    Bonsoir et merci pour l'info mais à quoi correspond la touche HOME, je dispose d'un mini clavier et je ne trouve pas cette touche.

    J'aurais voulu adapté ceci en macro dans WORKBOOK BeforePrint mais je ne sais pas comment faire.

    Cordialement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    c'est une touche à côté de Inser. Dessus est écrit Home ou alors il y a une flèche orienté vers le haut et la gauche.

    Si vous ne trouvez pas je ferai une capture

    pour créer une macro sur le sujet vos explications ne sont malheureusement pas suffisantes. Il faudrait au moins un exemple de classeur

  5. #5
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Benjîle Voir le message
    c'est une touche à côté de Inser. Dessus est écrit Home ou alors il y a une flèche orienté vers le haut et la gauche.

    Si vous ne trouvez pas je ferai une capture

    pour créer une macro sur le sujet vos explications ne sont malheureusement pas suffisantes. Il faudrait au moins un exemple de classeur
    Désolé mais mon clavier ne dispose pas de cette touche.
    Ci joint un classeur allant jusqu'à la ligne 50 mais obliger excel a n'imprimer que de A1:G10
    Et si je complete le tableau jusqu'à par exemple ligne 13 alors la macro imprimera de A1:G13

    Cordialement

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour,
    Dans ThisWorkbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim DernLig As Integer
    If Target.Column <> 2 And Target.Count > 1 Then Exit Sub
    DernLig = Sh.Range("A65536").End(xlUp).Row
    If Target.Row = DernLig Then
    Sh.Rows(DernLig + 1).Copy Sh.Range("A" & DernLig + 2)
    Else
    Sh.Rows(DernLig + 2).Delete
    End If
    End Sub
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour.

    Juste pour la ligne n°4 : éviter d'indiquer en dur le n° de ligne de la dernière cellule car il varie selon la version d'Excel !

    Exemple pour toute version :
    DernLig = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
    Edit : correction, désolé !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    je vous propose cette macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Imprimezone()
    [A1].CurrentRegion.PrintOut
     
    End Sub

  9. #9
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Bonjour.

    Juste pour la ligne n°4 : éviter d'indiquer en dur le n° de ligne de la dernière cellule car il varie selon la version d'Excel !

    Exemple pour toute version :
    DernLig = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
    Edit : correction, désolé !
    Merci pour la correction mais est ce vraiment dans Worbook avec SheetChange et non pas plutot avec BeforePrint ?

    Cordialement

  10. #10
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par vieuxmonsieur Voir le message
    Bonjour,
    Dans ThisWorkbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim DernLig As Integer
    If Target.Column <> 2 And Target.Count > 1 Then Exit Sub
    DernLig = Sh.Range("A65536").End(xlUp).Row
    If Target.Row = DernLig Then
    Sh.Rows(DernLig + 1).Copy Sh.Range("A" & DernLig + 2)
    Else
    Sh.Rows(DernLig + 2).Delete
    End If
    End Sub
    est ce vraiment dans Worbook avec SheetChange et non pas plutot avec BeforePrint ?

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Effectivement, ce serait logique dans l'évènement BeforePrint et d'indiquer alors la zone d'impression …

    Du coup j'ai du mal aussi avec le code proposé, mais laissons-le réagir …

    Je n'étais intervenu juste à propos de l'adresse de la dernière cellule en dur, mais j'avais commis une "boulette", d'où mon Edit,
    sans vraiment prêter attention au sujet ni aux réponses …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonsoir,
    Oui, le code proposé se met bien dans ThisWorkbook
    en fait, il ajoute les lignes au fur et a mesure de la saisie dès qu'il n'y a plus 2 lignes vides.
    Autrement, le code proposé par Benjîle répond à ta demande.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  13. #13
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Bonjour et merci à tous ceux qui ont contribué à ma demande mais le problème, c'est que aucune ne marche.

    En effet, etant donné que certaines colonnes possédent des formules, alors Excel considére qu'elles contiennent quelque chose et meme si aucune info n'est visible a l'ecran, excel m'imprime le tableau en entier soit de A1 : G2000



    Cordialement

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    uniquement les cellules utilisées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    With ActiveSheet
        .PageSetup.PrintArea = .UsedRange.Address
    'addresse = .UsedRange.Address
    End With
    End Sub
    tu dis je te cite
    En effet, etant donné que certaines colonnes possédent des formules, alors Excel considére qu'elles contiennent quelque chose et meme si aucune info n'est visible a l'ecran, excel m'imprime le tableau en entier soit de A1 : G2000
    moi je te repond que excel ne devine pas




    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Bonjour Patrick,

    Ok j'essaie demain au taf

    Merci

  16. #16
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    le problème est que dans votre fichier exemple il n'y a pas de formules contrairement au cas réel (je m'en doutais un peu). Vous nous avez donc lancé sur une mauvaise piste. Le code que je vous ai fourni marche sur l'exemple que vous avez donné.

    La réponse de M. patricktoulon sera frappée du même problème que la mienne puisque la plage usedrange inclut les currentregion.

    Pour en revenir à la première solution (sélection astucieuse avec le clavier) je n'ai jamais vu un clavier sans cette touche, mais sur les petits claviers elle est souvent doublée.
    Cordialement

  17. #17
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 903
    Points
    55 903
    Billets dans le blog
    131
    Par défaut
    Salut.

    Peut-être une solution sans macro, en fonction notamment de la configuration de la feuille.

    En supposant les données commençant en A1 et sans rupture entre A1 et la dernière ligne utilisée en A, on pourrait modifier la référence de la plage nommée Zone_d_impression en utilisant DECALER.



    Si la plage s'y prête, elle pourrait être convertie en liste (données>Listes>Créer...). On pourrait alors nommer la liste et la plage deviendrait dynamique sans avoir besoin de DECALER()

    C'est évidemment un exemple à adapter.

    Cela étant dit, vu ta configuration, tu aurais intérêt à utiliser la liste et à définir A:G comme zone d'impression, car je suppose que ton classeur est bien conçu et qu'il n'y a rien en dessous de la dernière ligne de saisie . Si tu définis les colonnes entières A:G, Excel saura qu'il doit s'arrêter après la dernière ligne saisie.
    "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...
    ---------------

  18. #18
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Citation Envoyé par Benjîle Voir le message
    vous vous placez sur la dernière cellule saisie puis au clavier: CTRL+SHIFT+HOME
    ensuite cliquer sur imprimer et dans la boîte de dialogue d'impression (ou dans l'onglet backstage) choisir imprimer uniquement la sélection)
    J'ai trouvé la touche HOME, elle s'appelle "DEBUT" sur mon clavier :LOGITECH K340 French.

  19. #19
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 215
    Points : 523
    Points
    523
    Par défaut
    Bonjour,

    Je crois avoir trouvé une solution mais j'aurais besoin de votre aide car il faut (en Vba) que je sélectionne en colonne A, la derniére cellule non vide (ex: A15) et que de ce fait excel selectionne la cellule Q correspondante (donc Q15), Q étant la dernière colonne de mon tableau.

    Cordialement,

  20. #20
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour.

    Il y a déjà un peu plus haut le code pour la dernière cellule …

    Pour la cellule en colonne Q, ajouter un .Offset(, 15) et le tour est joué !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA-E] - Excel- A juster automatiquement une zone d'impression
    Par nkhalidy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/03/2007, 18h05
  2. [VBA-E] modifier une zone d'impression
    Par LeXo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2007, 22h53
  3. [VBA-E] Range de la page d'une zone d'impression ?
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/05/2006, 15h39
  4. Modifier dynamiquement une zone
    Par Drahu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/05/2006, 07h00
  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