Zone d impression variable

Résolu
Bonjour,

je souhaite imprimer un tableau qui contient des formules mais la longueur de ce tableau est variable. il peut contenir 10 lignes comme 100
je souhaiterais faire une mise en page "conditionnelle" selon le nombre de lignes qui s'affiche , que la zone d'impression augmente ou diminue
et mon problème est que les cellules vides , ne le sont pas car elles contiennent des formules

J'ai cherché sur le forum mais je pense qu'il faut une macro mais je ne sais faire que celles
enregistrées :-(
Existe il une mise en page "conditionnelle" ?
Merci par avance pour votre aide
je joins un fichier exemple au cas ou mon cas (desespéré ) inspire quelqu'un !!

https://www.cjoint.com/?0GCqAJaotPj

4 réponses

  1. bonsoir
    j'ai pris et adapté la macro de Via55, ça marche super bien !!
    merci merci beaucoup

    Bonne soirée
    0
    1. Merci à vous
      je regarde ça sur mon fichier de base demain matin
      Bonne soiree
      0
      1. Contributeur
        Bonjour,

        En utilisant les plans tu peux te passer de la 2nde feuille.
        Il suffit de cliquer sur le 1 ou le 2 en haut à gauche pour masquer les colonnes non voulues.
        Et plus besoin de vba.
        https://www.cjoint.com/c/DGCsNnimgmU

        eric
        0
        1. Bonjour

          En fait il suffit de compter le nombre de lignes avec une valeur numérique et d'ajouter 1 à cause de la ligne de titre

          https://www.cjoint.com/?0GCqZtKRH7l

          Cdlmnt
          0
          1. J'avais le même problème. J'aurais voulu utiliser la macro, mais le lien n'est plus valide.
            Est-ce possible de la remettre, svp? (Merci, merci!!!)
            0
          2. Bonjour

            Je n'ai plus la macro mais voici un exemple de base :
            Sub Zone_Impress()
            ' compte les valeurs numériques en colonne B
            nv = WorksheetFunction.Count(Range("B:B"))
            ' nombre de lignes avant les valeurs (blanc, titre ..)
            nl = 2 ' à adapter
            ' dernière colonne de la zone d'impression
            dcol = "J" ' à adapter
            'dernière ligne de la zone d'impression
            dl = nv + nl
            'définition zone d'impression
            ActiveSheet.PageSetup.PrintArea = "$A$1:$" & dcol & dl
            End Sub


            Le principe est de compter les valeurs numériques dans une colonne (ici la B) et d'y ajouter le nombre de lignes précédentes (titre etc) pour obtenir le n° de la dernière ligne à imprimer et pouvoir définir une zone d'impression depuis A1 jusqu'à une colonne déterminée et cette dernière ligne

            Cdlmnt
            0
          3. Un énorme merci!!!!
            0