XL 2010 Changement de zone d’impression après enregistrement d’un PDF dans un répertoire

Bambi35

XLDnaute Occasionnel
Bonjour à tous

Avec mon fichier j’ai la possibilité de créer une facture en un cliquant dans une cellule de la colonne « R » à partir du nomment que celle-ci est renseignée par « oui »
Je peux visionner la facture et l’enregistrer dans un répertoire le C / : Facture
Le souci est que le PDF crée est de 25 pages alors qu’il ne devrait en avoir qu’une.
Je ne sais pas pourquoi la zone d’impression change . Et où je dois modifier la macro.
J'aimerai comprendre cela



Merci de votre aide
Bambi35
 

Pièces jointes

  • AttestationRev1.xlsm
    253.9 KB · Affichages: 48

Oranger

XLDnaute Occasionnel
Bonjour,

Le problème vient du .UsedRange.

.UsedRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

En effet sur l'onglet facture, tu as des données remplies jusqu'à la ligne 243. Donc excel imprime en pdf tout juqu'à la ligne 243.

Tu peux le remplacer par .Range("A1:L49") si cette plage reste toujours fixe. sinon il faudra déterminer quelle est la dernière ligne de la facture et l'intégrer de la même façon.

Cdlt,

Oranger
 

Oranger

XLDnaute Occasionnel
Bonjour,

En effet UsedRange ne comprend pas que les données. L'aide d'excel indique: "Cette propriété renvoie un objet Lien supprimé qui représente la plage utilisée dans la feuille de calcul spécifiée." Donc si tu as eu une action sur une cellule plus bas, exemple ligne 179. Le UsedRange renverra 179. Pour supprimer cela, j'ai sélectionné les lignes 146, juqu'à la ligne de fin et j'ai fait: édition> effacer tout.

En ce qui concerne le numéro de la dernière ligne ayant des données: tu peux utiliser:
DernLigne = Sheets("Facture").Range("B" & Rows.Count).End(xlUp).Row

"et qu'a chaque page l'on puisse avoir la répétition des ligne ("A1:L15")" >> Je ne comprends pas bien ce que tu cherches à faire. Tu souhaites imprimer jusuqu'à la dernière ligne ayant des données mais si ces données dépassent la ligne 15, il faut qu'elle soient sur une autre page. C'est ça?

Cdlt,

Oranger
 

Oranger

XLDnaute Occasionnel
Bonsoir,

Sinon je te conseille la méthode suivante:

Mettre dans la colonne A de la feuille facture dans la cellule A46:"Commentaires:" (voir fichier joint)

Tu utilise la formule ci-dessous pour savoir à quelle ligne se trouve commentaires:
Ligne_Fin = Application.WorksheetFunction.Match("Commentaires:", Sheets("Facture").Range("A:A"), 0)

--> Cela permet que la fin de ta feuille soit mobile. tu peux donc imprimer jusqu'à une ligne quelconque. et pas de souçis de communications

Et tu l'intègre dans ton code de la façon suivante
.Range("A1:L" & Ligne_Fin).ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Cdlt,

Oranger
 

Pièces jointes

  • AttestationRev1-test.xlsm
    245.5 KB · Affichages: 28

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib