Imprimer une plage en PDF

arnaudbu

XLDnaute Occasionnel
Bonjour, j'arrive à sélectionner ma plage avec une macro (A1:dernière cellule pleine en A) mais je n'arrive pas faire un code pour l'imprimer dans un ficher PDF dont le nom du fichier serait Journal du A1 - A2 - A3.pdf et enregister sous C:\JOURNAL\LIGHT\

Merci
 

Lone-wolf

XLDnaute Barbatruc
Re : Imprimer une plage en PDF

Bonsoir arnaudbu


(faut pas pas que ça devienne une partouze non plus :mad: ;) )​


Code:
Dim nom, chemin As String, t
Dim x, i As Integer
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
i = 1
    For x = 2 To 4
    i = i + 1
nom = "Journal du " & ActiveSheet.Range("A" & i)
t = Timer + 0.5: Do Until Timer > t: DoEvents: Loop

chemin = "C:\JOURNAL\LIGHT\"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & nom & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False
Next x
    Cancel = True
End Sub





A+ :cool:
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Imprimer une plage en PDF

Bonjour, arnaudbu, Lone-wolf :), le Forum

Une autre suggestion avec le code suivant :

Code:
Option Explicit
Sub PDF_colonne_a()
' chemin adapter...
    Range("a1:a" & Cells(Rows.Count, "a").End(xlUp).Row).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\00\Downloads\" & Range("a1") & Range("a2") & Range("a3") & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

A bientôt :)
 

arnaudbu

XLDnaute Occasionnel
Re : Imprimer une plage en PDF

Merci cela fonctionne avec une petite modification.

L'enregistrement de mon fichier ne fonctionnait pas car pour mes cellules (pour le nom fichier) contiennent une date. J'ai du formater la date pour que l'enregistrement se fasse.

Merci.
 

kiki29

XLDnaute Barbatruc
Re : Imprimer une plage en PDF

Salut, cela pourrait t'aider
Code:
Private Function NomFichierValide(sChaine As String) As Boolean
Dim i As Long
Const CaracInterdits As String = """*/:<>?[\]|"
    NomFichierValide = True
    If Len(sChaine) = 0 Then
        NomFichierValide = False
        Exit Function
    End If
    For i = 1 To Len(CaracInterdits)
        If InStr(sChaine, Mid$(CaracInterdits, i, 1)) > 0 Then
            NomFichierValide = False
            Exit Function
        End If
    Next i
End Function
 

Discussions similaires

Réponses
1
Affichages
237

Statistiques des forums

Discussions
312 602
Messages
2 090 156
Membres
104 413
dernier inscrit
HMF1984