Bouton impression par VBA

Bonjour,

J'ai créer une base de données a partir d'un tableau power query que je modifie en fonction de mes projet.

Chaque projet étant différent (nombre de lignes),certains passe sur deux pages alors que d'autres juste une.

J'ai dejà créer un bouton pour imprimer cette page. Problème lorsque mon projet tiens sur qu'une page il imprime comme même la tableau de la page deux alors que je n'ai aucune donnée dedans.

Je souhaiterai modifié le VBA de la macro (si cela est possible) pour imprimer la page deux que lorsque il y a quelques choses dans la cellule F92.

Je vous remercie pour votre aide.

Bonjour,

Il faut seulement modifier la mise en page de votre onglet :

Ajuster 1 page en largeur et rien en hauteur.

capture

Définir la ligne à répéter en haut. Eventuellement définir les colonnes dans la zone d'impression si d'autres données ne sont pas à éditer.

capture1

Bonjour bioval

Comment se présente votre fichier exactement

Si vous pouviez le joindre anonymisé

A+

Bonjour,

Voici le fichier. Les feuilles a imprimer ce trouve dans l'onglet rapport

Re,

Voici une possibilité de code selon votre tableau dans la feuille "Rapport"

Sub imprime()
  Dim dLig As Long, Lig As Long
  With ThisWorkbook.Sheets("Rapport")
    dLig = .Range("F" & Rows.Count).End(xlUp).Row
    For Lig = 5 To dLig Step 4
      If .Range("F" & Lig).Value = "" Then Exit For
    Next Lig
    ' Masquer les lignes ne trop
    .Rows(Lig - 1 & ":" & dLig + 1).Hidden = True
    ' Définir la zone d'impression
    .PageSetup.PrintArea = "$A$1:$L$" & dLig + 2
  End With
  Application.Dialogs(xlDialogPrint).Show , , , 1
  ' Réafficher toutes les lignes
  ThisWorkbook.Sheets("Rapport").Rows("1:" & dLig + 1).Hidden = False
End Sub

A tester

Re,

Voici une possibilité de code selon votre tableau dans la feuille "Rapport"

Sub imprime()
  Dim dLig As Long, Lig As Long
  With ThisWorkbook.Sheets("Rapport")
    dLig = .Range("F" & Rows.Count).End(xlUp).Row
    For Lig = 5 To dLig Step 4
      If .Range("F" & Lig).Value = "" Then Exit For
    Next Lig
    ' Masquer les lignes ne trop
    .Rows(Lig - 1 & ":" & dLig + 1).Hidden = True
    ' Définir la zone d'impression
    .PageSetup.PrintArea = "$A$1:$L$" & dLig + 2
  End With
  Application.Dialogs(xlDialogPrint).Show , , , 1
  ' Réafficher toutes les lignes
  ThisWorkbook.Sheets("Rapport").Rows("1:" & dLig + 1).Hidden = False
End Sub

A tester

Rechercher des sujets similaires à "bouton impression vba"