Partager via

Comment définir une Zone d'Impression variable

Anonyme
2022-07-16T13:23:19+00:00

Bonjour

J'ai besoin de définir une zone d'impression dont la dimension est variable.

Je connais la cellule de départ en haut à gauche exemple A1

Je connais la dernière ligne vers le bas exemple A20

Dans la ligne 1 j'ai des cellules qui contiennent des valeurs et d'autres qui sont vides.

Je souhaite donc définir une zone d'impression commençant en A1 et se terminant en X20 où la cellule X1 est la première cellule vide dans la ligne 1.

Comme ActiveSheet.PageSetup.PrintArea = "$A$1:$X$20"

J'ai bien pensé à la fonction DECALER mais n'ai pas su la finaliser.

Merci pour votre aide

Bernard

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2022-07-16T19:30:05+00:00

Plus exactement :

Dim Col As Integer
Col = [4:15].Find("*", , , , xlByColumns, xlPrevious).Column - 2
ActiveSheet.PageSetup.PrintArea = [C4:C15].Resize(, Col).Address

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

8 réponses supplémentaires

  1. Anonyme
    2022-07-16T15:03:03+00:00

    Daniel

    Pour tester ce code j'ai créé un fichier Excel avec des valeurs entrées entre C4 et G15. J'ai testé ta formule avec :

    ActiveSheet.PageSetup.PrintArea = Range("C4:I15").Resize(, Cells(1, Columns.Count).End(xlToLeft).Column).Address

    Mais cela ne marche pas. L'aperçu avant impression m'affiche la première colonne mais pas les autres.

    En essayant avec :

    Range("C4:I15").Resize(, 5).Select

    J'ai bien ma zone sélectionnée.

    Range("C4:I15").Resize(, Cells(1, Columns.Count).End(xlToLeft).Column).Select

    Ne marche pas.

    Merci pour ton aide

    Bernard

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-07-16T14:19:54+00:00

    Bonjour Daniel

    Toujours au poste pour aider !

    Merci je vais essayer.

    Bernard

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2022-07-16T14:10:18+00:00

    Bonjour,

    ActiveSheet.PageSetup.PrintArea =Range("A1:A20").Resize(, Cells(1, Columns.Count).End(xlToLeft).Column).Address

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2022-07-16T14:00:14+00:00

    Par exemple :

    ActiveSheet.PageSetup.PrintArea = "$A$1:$X$" & Range("A1").Offset.End(xlDown).Row + 1


    Erreur de ma part (lu trop vite, une fois de plus) ! 😉

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire