XL 2013 modifier code enregistrement sous.xls et.pdf

grisan29

XLDnaute Accro
bonjour a tous

dans une fonction d'archivage je voudrais que l'archive ne fasse qu'en .pdf est ce possible

code plus a jour avec dernier fichier

Pascal
 
Dernière édition:

grisan29

XLDnaute Accro
Re : modifier code .xls vers.pdf

bonsoir a vous tous et toutes

en fait j'ai répondu un peu vite, apparemment la sauvegarde se fait bien mais ne se trouve pas dans le dossier où il devrais être, je vous joint le fichier
et aussi que ce ne soit que la feuille"Facture" qui soit enregistrer , j'ai rajouter un bouton "nouvelle feuille" qui fait appel un code qui enregistre la feuille et appel a un compteur mais le code datant un peu je n'ai pas réussi a l'actualiser

Pascal
 

Pièces jointes

  • Copie de Copie de FACTURE.xlsm
    46.5 KB · Affichages: 74
Dernière édition:

grisan29

XLDnaute Accro
Re : modifier code enregistrement sous.xls et.pdf

Bonjour kiki29 et le forum

j'ai essayer ceci avec l'enregistreur et je peux sauver le classeur en entier
Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    ChDir "D:\savePDF"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\factures\Copie de Copie de FACTURE.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub
mais je voudrais ne sauver que la feuille"facture" en rajoutant le nom du client ("E2") et le nom de feuille ("D17")mais en séparent les devis des factures
dans D:\savePDF il y a 2 sous dossiers nommé "facture " et "devis"

Pascal
 

Pièces jointes

  • dossiers.jpg
    dossiers.jpg
    56.4 KB · Affichages: 53
Dernière édition:

grisan29

XLDnaute Accro
Re : modifier code enregistrement sous.xls et.pdf

bonjour

j'ai essayer ceci
Code:
Sub nouvelleFacture()
       Dim nom, chemin As Variant
     Dim plage As Range
          With Sheets("facture")
        
         Sheets("facture").Copy
         
         nom = Sheets("facture").Range("B17").Value & " - " & Sheets("facture").Range("E2").Value & ".Pdf"
         
         Select Case (Range("D8"))
          Case Is = "FACTURE": chemin = "D:\savePDF" & "\Facture\"
            
         Case Else: chemin = "D:\savePDF" & "\Devis\"
         End Select
         
         
    
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & nom, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
          MsgBox "Votre sauvegarde porte la référence : " & " " & nom

    ' .Range("J5:J10").Value = ""
     End With

         'Sauvegarde les modifications
        ActiveWorkbook.Save
         ActiveWindow.Close
    

End Sub

cela s'enregistre bien sous D: savePdf et dans les bons dossiers mais j'ai un panneau excel qui s'ouvre et je connais pas la raison peut etre le format d'enregistrement ???je joint un aperçu

Pascal
 

Pièces jointes

  • panneau excel.jpg
    panneau excel.jpg
    18 KB · Affichages: 67
Dernière édition:

kiki29

XLDnaute Barbatruc
Re : modifier code enregistrement sous.xls et.pdf

Salut, déjà si tu LISAIS le message d'erreur, il est très explicite
A lire d'urgence
extrait :
Microsoft Excel 2007 introduit un nouveau format de fichier appelé OpenXML (XML ouvert Office).

L'extension proposée par défaut lors de l'enregistrement d'un classeur est le type .xlsx.

Les autres extensions XML sont:
* Classeur autorisant les macros (.xlsm)
* Modèle par défaut (.xltx)
* Modèle autorisant les macros (.xltm)
* Macro complémentaire (.xlam)
* Le dernier format .xlsb, est une version binaire non XML.

La lettre x en fin d'extension signifie que le fichier ne contient aucune macro. La lettre m signifie que le fichier contient des macros. Si vous enregistrez et fermez votre classeur au format .xlsx alors qu'il contenait des macros, celles ci seront perdues.

voir ici en bas du post 1 Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant
 

grisan29

XLDnaute Accro
Re : modifier code enregistrement sous.xls et.pdf

bonjour a tous

maintenant que j'ai a peu près réussi le "transfert" en .PDF il faudrait pouvoir remettre le compteur des devis et factures a zero a chaque changement d'année, voici le code complet du module
Code:
Sub nouvelleFacture()
       Dim nom, chemin As Variant
     Dim plage As Range
         With frmFacture
        .Copy
         
         nom = .Range("B17").Value & " - " & .Range("E2").Value & ".Pdf"
         
         Select Case (.Range("D8"))
          Case Is = "FACTURE": chemin = "D:\savePDF" & "\Facture\"
            
         Case Else: chemin = "D:\savePDF" & "\Devis\"
         End Select
         
         
    
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & nom, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
          MsgBox "Votre sauvegarde porte la référence : " & " " & nom

  .Range("A19:E33,E2:E4,E5,G5,G12,D19:D33,A41").Value = ""
     End With

         'Sauvegarde les modifications
        ActiveWorkbook.Save
         ActiveWindow.Close
    Call Ajouternum

End Sub

Sub Ajouternum()

'Incrémentation N° Facture
Dim c As Long
Application.ScreenUpdating = False

    With frmFacture
     c = .Range("L5").Value
    '.Range("L5").Value = c + 1
    
    If .Range("D8").Value = "FACTURE" Then
             
         .Range("L5") = c + 1
         
         
    ElseIf .Range("D8").Value = "DEVIS" Then
    
         .Range("L6") = c + 1
       
    End If
    End With
End Sub

Pascal
 

grisan29

XLDnaute Accro
Re : modifier code enregistrement sous.xls et.pdf

bonjour kiki29

c'est de ce code dont tu parles toi le spécialiste en .PDF
Code:
Sub Tst_2007()
Dim sNomFichierPDF As String
Dim i As Long, Cpt As Long
Dim Ar() As String
 
    sNomFichierPDF = ThisWorkbook.Path & "\" & "Tableau2007.pdf"
 
    Cpt = 0
    For i = 1 To ThisWorkbook.Sheets.Count
        If Left(Sheets(i).Name, 2) = "RF" Or Left(Sheets(i).Name, 2) = "RC" Then
            ReDim Preserve Ar(Cpt)
            Ar(Cpt) = Sheets(i).Name
            Cpt = Cpt + 1
        End If
    Next i
    If Cpt = 0 Then Exit Sub
 
    Application.ScreenUpdating = False
    Sheets(Ar).Select
 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
 
    Sheets("Feuil1").Select
    Application.ScreenUpdating = True
End Sub
et que je modifie cette ligne
Code:
sNomFichierPDF = ThisWorkbook.Path & "\" & "Tableau2007.pdf
en
Code:
nom = .Range("B17").Value & " - " & .Range("E2").Value & ".Pdf"
n'est ce pas cela que tu attends où alors que je modifie la ligne comme suit
Code:
nom = .Range("B17") & " - " & .Range("E2") .Pdf

Pascal
 

grisan29

XLDnaute Accro
Re : modifier code enregistrement sous.xls et.pdf

bonsoir kiki29 et le forum

j'ai visualiser tes liens et surtout celui pour les terminaisons .xls,.xlsm.xlsx etc... le seul hic il n'y a rien pour .PDF qui est la terminaison de ma ligne
je ne vais quand même pas mettre .xlsm en fin de ligne comme ci dessous car l'enregistrement ce fait bien mais l'affichage de l'extension dans le message est déroutant voir aperçu
Code:
nom = .Range("B17").Value & " - " & .Range("E2").Value & ".Xlsm"

j'ai réussi a ne plus avoir ce panneau d'affichage message excel en mettant en haut et bas du code
Code:
Application.DisplayAlerts = False et true

ce n'est peut-être pas le mieux mais au moins cela fonctionne, mais je voudrais ton avis avant de clore le post

Pascal
 

Pièces jointes

  • apercu avec.jpg
    apercu avec.jpg
    93.6 KB · Affichages: 62
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa