faire une copie PDF de la feuille active

pascal21

XLDnaute Barbatruc
bonsoir le forum
j'ai une macro qui me permet de faire une copie de la zone ("A1:Y58") puis d'effacer le contenu de certaines cellules de cette même zone
j'aimerais faire une copie PDF de cette zone avec pour nommant cette copie avec le contenu de la cellule S5
comment réaliser cela si c'est possible?
je n'ai pas trouver comment faire avec l'enregistreur de macro
merci à vous
ps je ne pense pas que vous ayez besoin de fichier pour illustrer cette demande
au cas où, faites le savoir
merci
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : faire une copie PDF de la feuille active

si je le sais bien
mais le problème n'a pas l'air dans la compréhension de la demande,mais dans l'exécution de la macro, qui chez moi n'a pas l'air de fonctionner
quoi qu'il en soit je repasserai ce soir pour proposer un bout de fichier et on verra bien ce que ça donnera
bon après-midi
 

kiki29

XLDnaute Barbatruc
Re : faire une copie PDF de la feuille active

Salut, S5 vide ou avec un caractère interdit "*/:<>?[\]|

Code:
Option Explicit

Sub Tst_2007()
Dim sNomDossier As String
Dim sNomFichierPDF As String

    sNomDossier = ThisWorkbook.Path
    sNomFichierPDF = Trim$(Feuil1.Range("S5"))

    If Len(sNomFichierPDF) > 0 Then
        If NomFichierValide(sNomFichierPDF) Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                            Filename:=sNomDossier & "\" & _
                                                      sNomFichierPDF & ".pdf", _
                                            Quality:=xlQualityStandard, _
                                            IncludeDocProperties:=True, _
                                            IgnorePrintAreas:=False, _
                                            OpenAfterPublish:=False
        Else
            Feuil1.Range("S5").Select
            MsgBox "Nom de fichier invalide", vbOKOnly + vbInformation, "Nom de Fichier"
        End If
    End If
End Sub

Private Function NomFichierValide(sChaine As String) As Boolean
Dim i As Long
Const CaracInterdits As String = """*/:<>?[\]|"

    NomFichierValide = True
    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

Pour info il existe un SP3 pour Office 2007 : Détails du téléchargement : Suite Microsoft Office*2007 Service Pack*3 (SP3)
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : faire une copie PDF de la feuille active

bravo kiki, cette fois ça fonctionne très bien, si ce n'est que le contenu de la cellule s5 est une date au format 'samedi 26 novembre 2011 que j'écris comme ceci 26/11/2011 ou 26-11-2011
et ça me mets "nom non valide"
 

kiki29

XLDnaute Barbatruc
Re : faire une copie PDF de la feuille active

Re,et voilà

Rajouter
Code:
        If IsDate(sNomFichierPDF) Then sNomFichierPDF = Replace(sNomFichierPDF, "/", " ")

Code:
    .....
    If Len(sNomFichierPDF) > 0 Then
        If IsDate(sNomFichierPDF) Then sNomFichierPDF = Replace(sNomFichierPDF, "/", " ")
        If NomFichierValide(sNomFichierPDF) Then ....
 

Discussions similaires

Statistiques des forums

Discussions
312 511
Messages
2 089 163
Membres
104 055
dernier inscrit
fxcas