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 :

Exporter un PDF à deux endroits différents [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Eleveur caprin
    Inscrit en
    Juillet 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Eleveur caprin

    Informations forums :
    Inscription : Juillet 2007
    Messages : 146
    Par défaut Exporter un PDF à deux endroits différents
    Bonjour,
    Lors de la création d'une facture, à son enregistrement, je l'exporte en pdf sur une clé USB. Jusque là, ça marche nickel.
    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
    'Enregistrement sur clé USB
     
        'Déclaration des variables
        Dim NomDossier As String
        Dim CheminDossier As String
     
        On Error GoTo 1
     
        'Nom de dossier
         NomDossier = Application.InputBox("Dossier Enregistrement :", "Dossier")
        CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\"
     
     
        If NomDossier = "" Then Exit Sub
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier & "Facture_" & Range("J1").Value & ".pdf", quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, To:=1, openafterpublish:=False
     
    1
    Le hic, c'est que j'aimerai l'enregistrer sur deux supports différents, une copie sur ma clé et la deuxième sur mon pc.
    J'ai essayé pas mal de chose, mais au final soit mon PDF ne s'enregistre que sur un support, soit à la validation, hormis le PDF, ma facture s'enregistre deux fois en comptabilité, c'est pas top

    Peut être que je devrais créer un macro juste pour l'export de pdf?

    Voici le code de la macro au complet, pour donner une idée du contenu:
    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
    76
    Sub VALIDER()
     
     
          Dim Titres(), Dic As New Dictionary, c As Long, TFact(), L As Long, TRés(), item
        Titres = Feuil4.[A2:BV2].Value    'fait correspondre entêtes de VE avec produits Feuil2
        TFact = Feuil1.[A12:J44].Value
     
        ReDim TRés(1 To 1, 1 To UBound(Titres, 2))
        TRés(1, 1) = TFact(1, 4)    'n° de facture
        TRés(1, 2) = TFact(1, 1)    'date
        TRés(1, 3) = TFact(1, 5)    ' N° client
        TRés(1, 4) = NomClient(TFact(1, 5))    ' Nom client
        TRés(1, 5) = TFact(31, 10)    ' TTC
        TRés(1, 6) = TFact(29, 10)    'HT
        TRés(1, 7) = TFact(30, 5)    'TVA 5.5%
        TRés(1, 8) = TFact(31, 5)    'TVA 7%
        TRés(1, 9) = TFact(32, 5)    'TVA 10%
        TRés(1, 10) = TFact(33, 5)    'TVA 20%
        'TRés(1, 93) = TFact(2, 4)    'nombre de page de facture
     
        For c = 11 To 73   'produits ligne 2 VE
            For L = 4 To 27    'lignes 15 to 38 de factures
                If TFact(L, 2) = Titres(1, c) Then
                    TRés(1, c) = TRés(1, c) + TFact(L, 10)
                End If
            Next
        Next c
     
        Feuil4.Cells(&H100000, 1).End(xlUp).Offset(1).Resize(, 73).Value = TRés
     
    'Enregistrement sur clé USB
     
        'Déclaration des variables
        Dim NomDossier As String
        Dim CheminDossier As String
     
        On Error GoTo 1
     
        'Nom de dossier
         NomDossier = Application.InputBox("Dossier Enregistrement :", "Dossier")
        CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\"
     
     
        If NomDossier = "" Then Exit Sub
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier & "Facture_" & Range("J1").Value & ".pdf", quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, To:=1, openafterpublish:=False
     
    1
     
     
     
        MsgBox "Facture " & Range("J1").Value & " archivée avec succès."
     
     
        Dim n
     
        n = Right(Range("J1").Value, 5)
     
        'On incrémente le numéro de la facture
        Range("J1").Value = Range("J1").Value + 1
     
        'on efface le contenu de la facture
     
        Range("A15:E39,G15:G39,J43").ClearContents
        Range("J38").Select
        Selection.AutoFill Destination:=Range("J15:J38"), Type:=xlFillDefault
        Range("J15:J38").Select
     
        Range("H6").Select
     
     
    End Sub
    Merci pour votre aide

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 221
    Par défaut
    Hello,

    ceci devrait répondre à votre besoin
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Sub VALIDER()
     
     
          Dim Titres(), Dic As New Dictionary, c As Long, TFact(), L As Long, TRés(), item
        Titres = Feuil4.[A2:BV2].Value    'fait correspondre entêtes de VE avec produits Feuil2
        TFact = Feuil1.[A12:J44].Value
     
        ReDim TRés(1 To 1, 1 To UBound(Titres, 2))
        TRés(1, 1) = TFact(1, 4)    'n° de facture
        TRés(1, 2) = TFact(1, 1)    'date
        TRés(1, 3) = TFact(1, 5)    ' N° client
        TRés(1, 4) = NomClient(TFact(1, 5))    ' Nom client
        TRés(1, 5) = TFact(31, 10)    ' TTC
        TRés(1, 6) = TFact(29, 10)    'HT
        TRés(1, 7) = TFact(30, 5)    'TVA 5.5%
        TRés(1, 8) = TFact(31, 5)    'TVA 7%
        TRés(1, 9) = TFact(32, 5)    'TVA 10%
        TRés(1, 10) = TFact(33, 5)    'TVA 20%
        'TRés(1, 93) = TFact(2, 4)    'nombre de page de facture
     
        For c = 11 To 73   'produits ligne 2 VE
            For L = 4 To 27    'lignes 15 to 38 de factures
                If TFact(L, 2) = Titres(1, c) Then
                    TRés(1, c) = TRés(1, c) + TFact(L, 10)
                End If
            Next
        Next c
     
        Feuil4.Cells(&H100000, 1).End(xlUp).Offset(1).Resize(, 73).Value = TRés
     
    'Enregistrement sur clé USB et sur disque dur
     
        'Déclaration des variables
        Dim NomDossier As String
        Dim CheminDossier As String
     
        On Error GoTo 1
     
        'Nom de dossier
        NomDossier = Application.InputBox("Dossier Enregistrement sur clé USB :", "Dossier")
        If NomDossier = "" Then Exit Sub
     
        CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\"
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier & "Facture_" & Range("J1").Value & ".pdf", quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, To:=1, openafterpublish:=False
     
        NomDossier = Application.InputBox("Dossier Enregistrement sur disque dur du PC :", "Dossier")
        If NomDossier = "" Then Exit Sub
     
    ' *************************************************************************
        ' adater le chemin sur le disque dur
        CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\"
    ' *************************************************************************
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier & "Facture_" & Range("J1").Value & ".pdf", quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, To:=1, openafterpublish:=False
     
     
    1
     
     
     
        MsgBox "Facture " & Range("J1").Value & " archivée avec succès."
     
     
        Dim n
     
        n = Right(Range("J1").Value, 5)
     
        'On incrémente le numéro de la facture
        Range("J1").Value = Range("J1").Value + 1
     
        'on efface le contenu de la facture
     
        Range("A15:E39,G15:G39,J43").ClearContents
        Range("J38").Select
        Selection.AutoFill Destination:=Range("J15:J38"), Type:=xlFillDefault
        Range("J15:J38").Select
     
        Range("H6").Select
     
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Eleveur caprin
    Inscrit en
    Juillet 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Eleveur caprin

    Informations forums :
    Inscription : Juillet 2007
    Messages : 146
    Par défaut
    Merci merci
    Ca marche nikel

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Hello,

    Plutôt que d'exporter ta feuille 2 fois, pourquoi ne fais tu pas une simple copie de fichier ?

    PS:
    Il sera plus sage d'exporter en 1er sur le disque dur, et ensuite faire une copie sur la clef USB (si elle est présente).
    Les clefs USB étant par nature volatile et plus fragile que les disques dur.

  5. #5
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 221
    Par défaut
    @deedolith tu as parfaitement raison

    voici une version modifié du code pour enregistrer sur DD puis copier ce fichier sur clé USB, il faut juste adapter le chemin sur le DD
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Sub VALIDER()
     
     
          Dim Titres(), Dic As New Dictionary, c As Long, TFact(), L As Long, TRés(), item
        Titres = Feuil4.[A2:BV2].Value    'fait correspondre entêtes de VE avec produits Feuil2
        TFact = Feuil1.[A12:J44].Value
     
        ReDim TRés(1 To 1, 1 To UBound(Titres, 2))
        TRés(1, 1) = TFact(1, 4)    'n° de facture
        TRés(1, 2) = TFact(1, 1)    'date
        TRés(1, 3) = TFact(1, 5)    ' N° client
        TRés(1, 4) = NomClient(TFact(1, 5))    ' Nom client
        TRés(1, 5) = TFact(31, 10)    ' TTC
        TRés(1, 6) = TFact(29, 10)    'HT
        TRés(1, 7) = TFact(30, 5)    'TVA 5.5%
        TRés(1, 8) = TFact(31, 5)    'TVA 7%
        TRés(1, 9) = TFact(32, 5)    'TVA 10%
        TRés(1, 10) = TFact(33, 5)    'TVA 20%
        'TRés(1, 93) = TFact(2, 4)    'nombre de page de facture
     
        For c = 11 To 73   'produits ligne 2 VE
            For L = 4 To 27    'lignes 15 to 38 de factures
                If TFact(L, 2) = Titres(1, c) Then
                    TRés(1, c) = TRés(1, c) + TFact(L, 10)
                End If
            Next
        Next c
     
        Feuil4.Cells(&H100000, 1).End(xlUp).Offset(1).Resize(, 73).Value = TRés
     
    'Enregistrement sur clé USB et sur disque dur
     
        'Déclaration des variables
        Dim NomDossierDD As String
        Dim CheminDossier As String
     
        Dim CheminDossier_DD As String
     
        On Error GoTo 1
     
        'Nom de dossier
        NomDossier = Application.InputBox("Dossier Enregistrement sur disque dur du PC :", "Dossier")
        If NomDossier = "" Then Exit Sub
     
    ' *************************************************************************
        ' adapter le chemin sur le disque dur
        CheminDossier_DD = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\Facture_" & Range("J1").Value & ".pdf"
    ' *************************************************************************
     
        'Enregistrement au format PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CheminDossier, quality:= _
        xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
        from:=1, To:=1, openafterpublish:=False
     
        NomDossier = Application.InputBox("Dossier Enregistrement sur clé USB :", "Dossier")
        If NomDossier = "" Then Exit Sub
     
        CheminDossier = "H:\COMPTABILITE\Factures VE\" & NomDossier & "\Facture_" & Range("J1").Value & ".pdf"
     
        FileCopy CheminDossier_DD, CheminDossier
     
     
    1
     
     
     
        MsgBox "Facture " & Range("J1").Value & " archivée avec succès."
     
     
        Dim n
     
        n = Right(Range("J1").Value, 5)
     
        'On incrémente le numéro de la facture
        Range("J1").Value = Range("J1").Value + 1
     
        'on efface le contenu de la facture
     
        Range("A15:E39,G15:G39,J43").ClearContents
        Range("J38").Select
        Selection.AutoFill Destination:=Range("J15:J38"), Type:=xlFillDefault
        Range("J15:J38").Select
     
        Range("H6").Select
     
     
    End Sub
    (non testé)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/01/2017, 11h00
  2. [CR][ASP.NET][C#] Export vers PDF
    Par kaoutara dans le forum SDK
    Réponses: 2
    Dernier message: 20/10/2004, 11h33
  3. [CR] Exporter en PDF a partir d'un CRViewer
    Par Job dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 17/09/2004, 16h02
  4. [CR][VB] comment exporter en pdf ?
    Par speed034 dans le forum SDK
    Réponses: 1
    Dernier message: 29/04/2004, 14h54
  5. [CR] exporter en PDF
    Par Nathy dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 16/05/2002, 09h27

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