Enregistrement sous - PDF et XLSX
Bonjour,
Je vous sollicite aujourd'hui pour un petit coup de pousse si c'est possible merci bien !!
Je dispose d'un premier classeur XLSM qui contient un certain nombre de feuilles. A partir de ce dernier je dois extraire 4 feuilles afin de :
1. créer un nouveau classeur type (XLSX) sans macros;
Application.DisplayAlerts = False
'Déclaration des variables utilisés & affectations des valeurs
Dim Equipe As String
Dim Annee As String
Dim Nom As String
Dim Rsk as String
Rsk = Sheets("PAR").Range("D1").Value
Equipe = Worksheets("PAR").Range("D2").Value
Annee = Year(Worksheets("PAR").Range("C4").Value)
Name = "EQUIPE : " & Equipe & " ANNEE " & Annee & " ENVOYE LE " & Format(Date, "ddmmyyyy")
Fname = Application.GetSaveAsFilename(Nom)
'Enregistrement du nouveau XSLX SANS FORMULES dans le fichier
If Rsk = "S" Then
Sheets("SOLDE - S").Cells.ClearComments
ActiveWorkbook.Sheets(Array("FEUILLE 1", "FEUILLE 2", "FEUILLE 3", "FEUILLE 4")).Select
ThisWorkbook.Sheets(Array("FEUILLE 1", "FEUILLE 2", "FEUILLE 3", "FEUILLE 4")).Copy
ActiveWorkbook.SaveAs Filename:=Fname, FileFormat:=xlWorkbookDefault, CreateBackup:=False
EndIf
2. Créer un document pdf de ces mêmes feuilles.
If Rsk = "S" Then
ActiveWorkbook.Sheets(Array("FEUILLE 1", "FEUILLE 2", "FEUILLE 3", "FEUILLE 4")).Select
Nom = " EQUIPE : " & Equipe & " - ANNEE " & Annee & " ENVOYE LE " & Format(Date, "ddmmyyyy") & ".pdf"
Fname = Application.GetSaveAsFilename(Nom)
'Enregistrer en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fname, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=Sheets.Count, OpenAfterPublish:=True
Pour l'instant j'ai fait le choix de créer deux boutons séparés pour les deux macros
cependant j'ai 2 problèmes :
a- Je ne 'arrive pas à enregsitrer mes pdf et xlsx là où je veux avec le nom que j'ai attribué dans la variable "NOM"
b - Concernant le pdf je n'arrive pas à ajuster les feuilles car elles comprennent des tableaux.
même si j'ai utlisé une macro enregistré pour ajuster les FEUILLES 1, 2 et 3 sur 2 pages de hauteur / et la Feuille 4 sur une seule page en hauteur --> le pdf me crée des pages blanches vides ce qui est problématique. une solution pour les supprimer ?
With ActiveSheet.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 2
End With
RECAP :
1. soucis pour enregistrer le pdf et le xlsx là où je veux avec un nom prédéfinie dans la variable NOM
2. Soucis des pages blanches dans le pdf que je dois enlevé
MERCI POUR VOS AIDES
Bonjour CharifB
Vous mettriez l'option
Option Explicit
En entête de vos modules, vous verriez tout de suite le problème
Faites le et lancer une compilation du code
A+
Bonjour BrunoM45,
Merci pour ton conseil,
Option explicit
Sert à forcer la déclaration des variables.
Cela a bien été fait en amant, j'ai déclaré mes variables qui sont utilisés que dans le même module par une définition classique : Dim .... As .... , et les variables dont j'aurai besoin dans plus d'un module par : Global ... As .... .
Toujours dans la continuité de ma problématique : je n'ai toujours pas trouvé de solution à :
1. Dans la création du pdf : je me rend compte même si je n'ai pas un niveau développé (je peux me tromper), que c'est cette ligne
Fname = Application.GetSaveAsFilename(Nom)
Qui me crée un pdf ou qui m'ouvre l'onglet pour enregistrer mon pdf mais sans y mettre le nom comme je le demande dans les (NOM).
En plus de ça j'arrive toujours pas à dimensionner correctement mes feuilles en faisant
With ActiveSheet.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 2
End With