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 :

Fichier temporaire FDF


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Homme Profil pro
    MDN
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : MDN

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Par défaut Fichier temporaire FDF
    Bonjour a vous,

    je travail sur un VBA que j'ai trouvé car je ne suis pas top en script. Le but de celui-ci est de remplir automatiquement un fichier PDF a partitr d'un fichier Excel.

    Fonctionnement:
    Lorsque je choisi une ligne du fichier Excel et appui sur le boutton imprimer formulaire DPTI que j'ai crée tous fonctionne, mais le VBA a été fait de facon qu'un fichier FDF est créé automatiquement dans le dossier contenant mon fichier PDF et Excel souce.

    Vu que mon fichier sera sur sharepoint, je ne veux pas que le fichier sois créé sur sharepoint car nous ne pouvont pas effacer ceux-ci sauf si j'en fais la demande.

    J'aimerais que le fichier FDF sois créé temporairement ou choisir un dossier sur l'ordinateur a la place du fichier source qui est sur sharepoint.

    Cela est-il possible?

    Merci

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Pourriez vous déposer le code plutôt que le fichier ?
    Il est 'mal' vu de déposer un fichier dès le premier post, et peu de membre ouvre les fichiers joint pour raison de sécurité.

    Certainement un'ThisWorkbook. Path' à modifier par un chemin précis sur votre Pc.

    Bav,

  3. #3
    Inactif  
    Homme Profil pro
    MDN
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : MDN

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Par défaut
    D'accord, désolé.

    Module 1:

    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
    Option Explicit
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Const SW_NORMAL = 1
    Public Const PDF_FILE = "Entente DPTI.pdf"
     
     
    Public Sub DPTI_FR()
     
        Dim sFileHeader As String
        Dim sFileFooter As String
        Dim sFileFields As String
        Dim sFileName As String
        Dim sTmp As String
        Dim lngFileNum As Long
        Dim vClient As Variant
     
     
        ' Builds string for contents of FDF file and then writes file to workbook folder.
        On Error GoTo ErrorHandler
     
        sFileHeader = "%FDF-1.2" & vbCrLf & _
                      "%âãÏÓ" & vbCrLf & _
                      "1 0 obj<</FDF<</F(" & PDF_FILE & ")/Fields 2 0 R>>>>" & vbCrLf & _
                      "endobj" & vbCrLf & _
                      "2 0 obj[" & vbCrLf
     
        sFileFooter = "]" & vbCrLf & _
                      "endobj" & vbCrLf & _
                      "trailer" & vbCrLf & _
                      "<</Root 1 0 R>>" & vbCrLf & _
                      "%%EO"
     
     
        sFileFields = "<</T(Nom)/V(---NAME---)>>" & vbCrLf & _
                      "<</T(Matricule)/V(---Matricule---)>>" & vbCrLf & _
                      "<</T(Model0)/V(---Model0---)>>" & vbCrLf & _
                      "<</T(Type0)/V(---Type0---)>>" & vbCrLf & _
                      "<</T(Size0)/V(---Size0---)>>" & vbCrLf & _
                      "<</T(Serie0)/V(---Serie0---)>>" & vbCrLf & _
                      "<</T(Class0)/V(---Class0---)>>" & vbCrLf & _
                      "<</T(NomSig0)/V(---NomSig0---)>>" & vbCrLf & _
                      "<</T(NomSigOSSI)/V(---NomSigOSSI)>>" & vbCrLf & _
                      "<</T(f1_12(0))/V()>>" & vbCrLf
     
     
     
        vClient = Range(Selection.Row & ":" & Selection.Row)
     
        sFileFields = Replace(sFileFields, "---NAME---", vClient(1, 9))
        sFileFields = Replace(sFileFields, "---Matricule---", vClient(1, 11))
        sFileFields = Replace(sFileFields, "---Model0---", vClient(1, 2))
        sFileFields = Replace(sFileFields, "---Type0---", vClient(1, 4))
        sFileFields = Replace(sFileFields, "---Size0---", vClient(1, 5))
        sFileFields = Replace(sFileFields, "---Serie0---", vClient(1, 6))
        sFileFields = Replace(sFileFields, "---Class0---", vClient(1, 7))
        sFileFields = Replace(sFileFields, "---NomSig0---", vClient(1, 9))
        sFileFields = Replace(sFileFields, "---NomSigOSSI", vClient(1, 12))
     
     
        sTmp = sFileHeader & sFileFields & sFileFooter
     
     
     
        ' Write FDF file to disk
        If Len(vClient(1, 9)) Then sFileName = vClient(1, 9) Else sFileName = "FDF_DEMO"
        sFileName = ActiveWorkbook.Path & "\" & sFileName & ".fdf"
        lngFileNum = FreeFile
        Open sFileName For Output As lngFileNum
        Print #lngFileNum, sTmp
        Close #lngFileNum
        DoEvents
     
        ' Open FDF file as PDF
        ShellExecute vbNull, "open", sFileName, vbNull, vbNull, SW_NORMAL
        Exit Sub
     
    ErrorHandler:
        MsgBox "MakeFDF Error: " + Str(Err.Number) + " " + Err.Description + " " + Err.Source
     
    End Sub

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Logiquement, je dirai, a modifier ThisWorkbook.path la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sFileName = ActiveWorkbook.Path & "\" & sFileName & ".fdf"

    Par un chemin de dossier destination du genre c:\dossier entre guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sFileName = "lechemindudossierdeDestination" & "\" & sFileName & ".fdf"

  5. #5
    Inactif  
    Homme Profil pro
    MDN
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : MDN

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Par défaut
    Wow merci beaucoup c'etais facile, faut juste y penser.

    Je me demandais si cela est possible d'ajouter une ligne VBA pour créé le dossier automatiquement si celui-ci n'existe pas?

  6. #6
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Hello,

    Content que cela t'ai aider.
    Pour répondre à ta dernière question, c'est faisable.

    Il te faudrait une fonction vérifiant que le dossier de destination existe et si pas le créé.
    Une petite recherche sur ce forum devrait te donner des functions de ce type.

    Bat

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

Discussions similaires

  1. Les fichiers temporaires
    Par mzt.insat dans le forum Administration système
    Réponses: 4
    Dernier message: 08/08/2005, 14h48
  2. [Applet] Créer un fichier temporaire
    Par leminipouce dans le forum Applets
    Réponses: 21
    Dernier message: 28/07/2005, 16h16
  3. [Tomcat]Tomcat Fichier temporaire
    Par kitiara999 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 19/07/2005, 23h13
  4. Y as il des fichiers temporaires sous builder
    Par Moutonstar dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/12/2004, 14h24
  5. Comment changer le répertoire des fichiers temporaires ?
    Par devdev dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/09/2004, 14h18

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