IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Enregistrer en pdf


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut Enregistrer en pdf
    Bonjour,

    Voilà j'aimerais savoir si je peux enregistrer et archiver directement en PDF au lieu de xlsm.

    Je vous joins mon fichier avec son code VBA que je n'ose pas toucher car déjà eu quelques soucis avec quand je m'en sers pour différents clients, il arrive souvent que je doive désinstaller excel et le réinstaller car lors de l'archivage j'ai une erreur 1004 qui me dit "workldentity" de l'objet "_workbook" a éhoué.

    Du coup comme en ce moment ça ne le fait pas je n'ose rien toucher et surtout je ne connais pas la formule pour le faire.

    J'ai un autre petit soucis avec ce fichier lorsque j'archive une fois mon devis ou facture faits le numéro d'incrémentation apparait sur le devis ou devis qui s'est enregistré, je suis obligée de l'effacer manuellement.

    Merci de bien vouloir m'aider, car ça me sert pour plusieurs clients et j'en ai vraiment besoin.

    Je vous joins le fichier

    Je précise que je suis sur MAC et que ma version d'excel est 16.19

    Bonne journée
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par julie13300 Voir le message
    j'aimerais savoir si je peux enregistrer et archiver directement en PDF au lieu de xlsm.
    Utilise ExportAsFixdFormat appliqué à la feuille ou au classeur avec le paramètre Type:=xlTypePDF.
    https://docs.microsoft.com/fr-FR/off...tasfixedformat
    https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)

    Je vous joins mon fichier
    Beaucoup de participants à ce forum n'ouvrent pas les fichiers joints, surtout s'ils peuvent contenir des macro.
    Lire ça : https://www.developpez.net/forums/d8...s-discussions/

    avec son code VBA que je n'ose pas toucher car déjà eu quelques soucis avec quand je m'en sers pour différents clients, il arrive souvent que je doive désinstaller excel et le réinstaller car lors de l'archivage j'ai une erreur 1004 qui me dit "workldentity" de l'objet "_workbook" a éhoué.
    Du coup comme en ce moment ça ne le fait pas je n'ose rien toucher et surtout je ne connais pas la formule pour le faire.
    Fais une copie du fichier et travaille sur la copie.
    Comme ça tu pourras toujours revenir à la situation de départ en cas de problème.

    lorsque j'archive une fois mon devis ou facture faits le numéro d'incrémentation apparait sur le devis ou devis qui s'est enregistré, je suis obligée de l'effacer manuellement.
    Pour savoir comment régler ce problème, il faudrait voir le code concerné par cette procédure.

  3. #3
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Je te mets le code complet, pour le numéro qui ne s'efface pas sur la feuille archivée et peux tu me dire stp à quel endroit je dois insérer ExportAsFixFormat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Sub Archivage_Devis()
    Dim chemin$, Sep$, nom$, chm$, Lks, B
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([F4]) & "-" & Format([F4], "mmm") & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
            " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            Application.EnableEvents = False
            Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xlsx
            Sheets("Devis").Copy
           For Each B In ActiveSheet.Buttons
                B.Delete
            Next
     
            ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
            Lks = ActiveWorkbook.LinkSources()
            If Not IsEmpty(Lks) Then
                For i = 1 To UBound(Lks): ActiveWorkbook.BreakLink Name:=Lks(i), Type:=xlExcelLinks: Next
            End If
     
            chm = chemin & PathSep & "Archives Devis" & PathSep & nom
     
            ActiveWorkbook.SaveAs chm, FileFormat:=xlOpenXMLWorkbook
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Devis").Range("F4,F5,A13:F17,A19:E22,F27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        Application.Goto [K5]
        ActiveWorkbook.Save
    End Sub
     
    Sub Archivage_Factures()
    Dim chemin$, Sep$, nom$, chm$, Lks, B
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([F4]) & "-" & Format([F4], "mmm") & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro de la facture", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si la facture est entièrement éditée, veuillez confirmer" & vbCrLf & vbCrLf & _
                    " l'archivage de la facture n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
           Application.EnableEvents = False
           Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xls
           Sheets("Facture").Copy
           For Each B In ActiveSheet.Buttons
                B.Delete
            Next
     
            ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
            Lks = ActiveWorkbook.LinkSources()
            If Not IsEmpty(Lks) Then
                For i = 1 To UBound(Lks): ActiveWorkbook.BreakLink Name:=Lks(i), Type:=xlExcelLinks: Next
            End If
     
            chm = chemin & PathSep & "Archives Factures" & PathSep & nom
     
            ActiveWorkbook.SaveAs chm, FileFormat:=xlOpenXMLWorkbook
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Facture").Range("F4,F5,A14:F23,F25:F27,A36:F36,A38:F38").ClearContents
            Sheets("Facture").Range("K5").Value = Sheets("Facture").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        Application.Goto [K5]
        ActiveWorkbook.Save
    End Sub

Discussions similaires

  1. Ouvrir, concaténer et enregistrer des pdf
    Par giaco dans le forum C++Builder
    Réponses: 11
    Dernier message: 03/05/2007, 12h07
  2. [FPDF] problème de titre avec fpdf et enregistrement du pdf créé
    Par tiger63 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/04/2007, 20h04
  3. [ezPDF] Enregistrer mon .pdf sur le server
    Par lagag dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2006, 10h41
  4. [SGBD] FPDF+enregistrer le pdf généré dans BDD MySQL
    Par Flushovsky dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/11/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo