VBA Macro pour générer un PDF sans l'enregistrer
Résolu
Looping38
Messages postés
97
Statut
Membre
-
Looping38 Messages postés 97 Statut Membre -
Looping38 Messages postés 97 Statut Membre -
Bonjour,
Je bloque sur une macro. Je souhaite générer un pdf d'une sélection d'un classeur en lui donnant un nom selon certaines celulles, mai uniquement l'ouvrir par la fonction OpenAfterPublish:= _True. et pas dorcement l'enregistrer. A l'utilisateur de faire enregistrer sous depuis adobe Reader.
En effet, je ne connais pas forcement le lieu de destination du fichier pour l'utilisateur.
Une alternative serait de proposer une boite de dialogue pour choisir la destination, en proposant déja un nom de fichier. (solution que je souhaite uniquement si pas possible autrement.
Actuellement j'utilise le code suivant :
Merci de votre aide.
Cordialement, Martin
Je bloque sur une macro. Je souhaite générer un pdf d'une sélection d'un classeur en lui donnant un nom selon certaines celulles, mai uniquement l'ouvrir par la fonction OpenAfterPublish:= _True. et pas dorcement l'enregistrer. A l'utilisateur de faire enregistrer sous depuis adobe Reader.
En effet, je ne connais pas forcement le lieu de destination du fichier pour l'utilisateur.
Une alternative serait de proposer une boite de dialogue pour choisir la destination, en proposant déja un nom de fichier. (solution que je souhaite uniquement si pas possible autrement.
Actuellement j'utilise le code suivant :
Sub ExportPDFnomvariable()
'Sélection de la zone à imprimer
CV = 6
With Worksheets("Panorama FM")
For n = 8 To 115
If .Columns(n).Hidden = False Then CV = CV + 1
If CV = 11 Then Exit For
Next n
.Range(Cells(8, 2), Cells(114, n)).Select
' Macro export en PDF avec nom variable selon contenu cellule.
'Chemin d'accès pour l'enregistrement
ChDir "C:\Users\Martin GIVELET\Desktop\Devis Santé"
selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Martin GIVELET\Desktop\Devis Santé\DEVIS " & " " & Sheets("Données Client").Cells(1, 10).Value & " " & Sheets("Données Client").Cells(5, 5).Value & " " & Sheets("Données Client").Cells(4, 5).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
End Sub
Merci de votre aide.
Cordialement, Martin
A voir également:
- VBA Macro pour générer un PDF sans l'enregistrer
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Audacity enregistrer son pc - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
- Comment fusionner des pdf sans logiciel - Guide
2 réponses
J'ai avancé et je partage ma solution : J'enregistre le fichier dans le même répertoire que le fichier excel.
Dans l'idéal, il faudrait vérifier si un dossier "Devis" existe pour l'utiliser sinon, le créer.
Si quelqu'un peut m'aider sur la fin...
Martin
Dans l'idéal, il faudrait vérifier si un dossier "Devis" existe pour l'utiliser sinon, le créer.
Sub ExportPDFnomvariable()
'incrémentation N° à chaque impression
Sheets("Données Client").[C25] = Sheets("Données Client").[C25] + 1
'Séléction de la zone à imprimer
CV = 6
With Worksheets("Panorama FM")
For n = 8 To 123
If .Columns(n).Hidden = False Then CV = CV + 1
If CV = 11 Then Exit For
Next n
Range(Cells(8, 2), Cells(121, n)).Select
' Macro export en PDF avec nom variable selon contenu cellule.
'Chemin d'accès pour l'enregistrement
ChDir (ThisWorkbook.Path)
'Chemin d'accès + nom du document souhaité
'Attention ==> Sheets("Feuille de route").Cells(N°deLIGNE, N°deCOLONNE).Value
'Pour les espaces, copier ==> &" "&
'Pour autoriser ou non l'ouverture du document en pdf a chaque enregistrement changer OpenAfterPublish:= _False/True
selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
" Devis " & Sheets("Données Client").Cells(1, 10).Value & " " & Sheets("Données Client").Cells(5, 5).Value & " " & Sheets("Données Client").Cells(4, 5).Value & Sheets("Données Client").Cells(25, 3).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
End Sub
Si quelqu'un peut m'aider sur la fin...
Martin
Looping38
Messages postés
97
Statut
Membre
1
Comment créer le dossier DEVIS s'il n'existe pas?
bonjour,
a mettre dans Thisworkbook tiré du site:
https://excel-malin.com/
a mettre dans Thisworkbook tiré du site:
https://excel-malin.com/
Option Explicit Private Sub Workbook_Open() TesteSiDossierExiste End Sub Sub TesteSiDossierExiste() 'par Excel-Malin.com ( http://excel-malin.com ) Dim MonDossier As String MonDossier = ThisWorkbook.Path & "\DEVIS " If DossierExiste(MonDossier) = True Then ' MsgBox "Le dossier existe..." Else MkDir (ThisWorkbook.Path & "\DEVIS ") End If End Sub Public Function DossierExiste(MonDossier As String) 'par Excel-Malin.com ( http://excel-malin.com ) If Len(Dir(MonDossier, vbDirectory)) > 0 Then DossierExiste = True Else DossierExiste = False End If End Function