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 :

[VBA]excel vers pdf


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut [VBA]excel vers pdf
    bonjour,
    comment fait on pour passer le chemin du sendkey?
    un bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Const ThePath As String = "C:\documents an settings\admin\bureau" 
    Const TheFile As String = "Essai"
     
    Sub pdf()
    SendKeys ThePath & TheFile + "~"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Adobe PDF", collate:=True
    End Sub
    lorsque que je fais ca, la boite de dialogue s'ouvre et me dit que
    "and settings\admin\bureau\essai" n'est pas un chemin valide

    quelqu'un peut m'aider??

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    il faut faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Replace(ThePath,"\","\\")
    je crois

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    merci de la reponse

    pourquoi faire un replace? le sendkey ne prend pas les slash en charge?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    non justement ^^

  5. #5
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour

    mets un slash à la fin
    Const ThePath As String = "C:\documents an settings\admin\bureau\"
    et ça doit fonctionner.

    Salutations
    frd65200

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    lol, au passage, il manque un d à and :p

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    ca marche pas!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
     
    Const ThePath As String = "C:\documents an settings\admin\bureau\"
    Const TheFile As String = "TheTestingFile.pdf"
     
    Sub pdf()
    SendKeys ThePath & TheFile + "~"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Adobe PDF", collate:=True
    End Sub
    Images attachées Images attachées  

  8. #8
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    le D

    Const ThePath As String = "C:\documents and settings\admin\bureau\"


    Si tu n'est pas sous Vista, télécharge Clickie pour copier les noms de dossier /fichier,
    Sur Vista, Shift + Clic sur le dossier / Fichier
    ligne "Copier en tant que chemin d'accès"
    @+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Oups, c'est corrigé
    mais cela ne change rien.........

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    essaie de récupérer le path du bureau par les variable environ()

  11. #11
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    et ça

    SendKeys ThePath & TheFile + "~"

    SendKeys ThePath & TheFile & "~"

    cordialement

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    jpcheck,
    je ne connais pas ce type de variables(eh oui un newb)

    fred65200,
    le fait de mettre l& ne change rien

    Auriez une autre methode pr automatiser la saisie du nom de fichier?

  13. #13
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re bonjour,
    résumons le chemin est bon

    Si tu le fais manuellement, tu choisis ton fichier et tu cliques sur ENTER

    Essaies de mettre une temporisation, je t'ai mis 5, fais tes essais et réduis le délai d'attente

    SendKeys ThePath & TheFile , True
    Attendre 5
    Sendkeys "~", true
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Adobe PDF", collate:=True

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function Attendre(Secondes As Integer)
    ' Cette procédure temporise pendant le nombre de secondes qu'on lui transmet en argument
    Dim Début As Long, fin As Long, Chrono As Long
    Début = Timer
    fin = Début + Secondes
    Do Until Timer >= fin
        DoEvents
    Loop
    End Function
    fred65200

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    merci de ton aide fred
    j'ai fait les tests.tout d'abord, j'ai du integrer la function attendre dans le sub car la pile était insuffisante
    voilà le code:

    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
    Sub pdf2()
     
    SendKeys ThePath & TheFile, True
    'attente
    Dim Début As Long, fin As Long, Chrono As Long
    Début = Timer
    fin = Début + 1
    Do Until Timer >= fin
        DoEvents
    Loop
    'envoi touche entrée
    SendKeys "~", True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Adobe PDF", collate:=True
     
    End Sub
    en fonction, ce code m'ouvre indefiniment la fenetre windows d'enregistrement de fichier

    je ne sais plus quoi faire...

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par fred65200 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function Attendre(Secondes As Integer)
    ' Cette procédure temporise pendant le nombre de secondes qu'on lui transmet en argument
    Dim Début As Long, fin As Long, Chrono As Long
    Début = Timer
    fin = Début + Secondes
    Do Until Timer >= fin
        DoEvents
    Loop
    End Function
    Hello Fred, tu sais qu'on peut remplacer cette fonction par

    Ceci dit, je n'ai toujours pas compris le problème.
    Oussbaba au rhum, tu as toujours le message sur "C:\Documents and Settings\admin\bureau\essai" n'est pas un chemin valide ?

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    bonjour ouskel'nor
    je vais essayer de faire au plus simple
    mon but est d'automatiser la sortie en pdf d'un excel sans le passage par la fenetre d'enregistrement windows
    l'impression pdf fonctionne jusqu'à la fenetre d'enregistrement où celle ci me demande comment et où je veux enregistrer le pdf
    c'est cette étape que je veux automatiser en codant le chemin et le nom

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Désolé mais je n'ai pas la solution.
    Printout a deux paramètres : PrintToFile et PrToFileName. Je n'ai jamais testé et en principe c'est fait pour créer un fichier d'impression mais tu peux toujours tester... Je ne peux pas le faire (j'utilise pdfcreator) A tout hasard...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... , PrintToFile:=True, PrToFileName:=Chemin & NomFich
    Je ne pense pas que ça fonctionnera mais sait-on jamais
    J'ai vu passer une réponse où les paramètres de fichier, de path et de format étaient définis mais il s'agissait (ici) d'Acrobat Distiller.
    Enfin, quelle version d'Excel as-tu ? Avec 2007, tu as un export au format pdf disponible (voir la FAQ)
    Après, je suis sec

  18. #18
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Dans Acrobat Distiller ( si tu l'as )
    Menu Fichier | Préférences
    Décocher les Options idoines dans "Options de Sortie"
    Sinon un code similaire , à adapter
    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
     
    '   sous VBE Menu Outils | Références
    '   Cocher Acrobat Distiller
     
    Sub Tst_Adobe_PDF_02()
    Dim sNomFichierPS As String
    Dim sNomFichierPDF As String
    Dim PDFDist As PdfDistiller
     
    '   sur un PC Personnel : a priori Choix libre du Nom et de l'emplacement du fichier de sortie
    '
    '   Sur un PC "Entreprise"
    '   Il faut être logué en Administrateur ou en Avoir les droits pour utiliser Distiller
    '   Les chemins doivent être de la forme :
    '       "C:\Documents and Settings\UserName\Mes documents\....."
     
        sNomFichierPS = ThisWorkbook.Path & "\" & "Essai_AdobbePDF.ps"
        sNomFichierPDF = ThisWorkbook.Path & "\" & "Essai_AdobbePDF.pdf"
     
        ActiveSheet.Range("Zone").PrintOut copies:=1, Preview:=False, _
            ActivePrinter:="Acrobat PDF", PrintToFile:=True, _
            Collate:=True, PrToFilename:=sNomFichierPS
     
        Set PDFDist = New PdfDistiller
        PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
        Set PDFDist = Nothing
     
        Kill sNomFichierPS
        Kill ThisWorkbook.Path & "\" & "Essai_AdobbePDF.log"
    End Sub

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    merci bcp kiki
    mon pb est resolu grace a ton code que j'ai un peu modifié

    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
     
    Sub Adobe_PDF()
     
    Dim NomPS, NomPDF, NomLog As String
    Dim nom, path, dte As String
    Dim PDFm As PdfDistiller
     
        nom = ActiveSheet.Range("E13").Value '& ActiveSheet.Range("C36")
        path = "\\*****\partage\"
     
        NomPS = path & nom & ".ps"
        NomPDF = path & nom & ".pdf"
        NomLog = path & nom & ".log"
     
        ActiveSheet.PrintOut copies:=1, Preview:=False, _
            ActivePrinter:="Acrobat PDF on Ne00:", PrintToFile:=True, _
            Collate:=True, PrToFilename:=NomPS
     
        Set PDFm = New PdfDistiller
        PDFm.FileToPDF NomPS, NomPDF, ""
        Set PDFm = Nothing
     
        Kill NomPS
        Kill NomLog
    End Sub
    Encore merci pour votre aide et votre rapidité

  20. #20
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Re
    Une remarque dans Dim NomPS, NomPDF, NomLog As String seul NomLog sera de type String mais pas NomPS ni NomPDF qui seront de type Variant
    donc : Dim NomPS As String, NomPDF As String , NomLog As String
    -d°- pour le reste

    Une autre remarque : à quoi bon répéter un code simlilaire à celui proposé sinon pour encombrer le paysage ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Mise en page excel vers PDF en VBA
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/06/2017, 11h42
  2. [XL-2010] Exportation Excel vers PDF en VBA
    Par Mr_Exal dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 14/02/2012, 13h56
  3. Vba excel vers outlook
    Par maejor dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2008, 17h53
  4. Excel vers pdf
    Par benjisan dans le forum Access
    Réponses: 3
    Dernier message: 25/06/2007, 09h19
  5. Migrer un projet VBA Excel vers VB
    Par Phoon0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2005, 11h09

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