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

VBA Word Discussion :

Demande d'aide concernant une macro Word


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire de sinistres
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gestionnaire de sinistres
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Demande d'aide concernant une macro Word
    Bonjour à tous.
    Je suis tout nouveau ici, et tout nouveau aussi pour créer mes macros dans Word, Excel etc. Je vous saurais donc gré de bien vouloir m'excuser si les fautes que je commets sont impardonnables...
    Ce que je cherche à faire :
    Créer un document word avec un seul champ obligatoire à remplir (nom) et une macro sur laquelle je clique afin d'exporter le document sous PDF, l'enregistrer sous format mm-dd-yy_NOM dans un dossier spécifique et l'adresser par mail à un service avec en copie une autre personne.

    Jusqu'à présent, je suis en mesure de renommer le fichier, de l'enregistrer dans un dossier spéficique et de l'envoyer par mail.
    Cependant, lorsque j'enregistre le document sous format PDF, il se passe une erreur et le document PDF est vide car mal compilé.

    Voici la copie de la macro :

    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
    Private Sub Label1_Click()
     
    ' envoi un mail avec la pièce jointe
    '
     
    Dim nom
    ChangeFileOpenDirectory "H:\Réclas"
    nom = ActiveDocument.Paragraphs(2).Range.Words(3)
    ActiveDocument.SaveAs FileName:="H:\Réclas\" & Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yy") & "_" & nom & ".pdf"
     
     
     
    Dim ol As Object, monItem As Object
    Set ol = CreateObject("outlook.application")
    Set monItem = ol.CreateItem(olMailItem)
     
    monItem.To = "blablabla@blablabla.fr"
    monItem.Subject = "Enregistrement réclamation client"
    monItem.Body = "Bonjour," & Chr(13) & Chr(13) & "Je vous prie de bien vouloir enregistrer la réclamation en pièce jointe" & Chr(13) & Chr(13) & "Cordialement,"
    Set mondoc = monItem.Attachments
    mondoc.Add ActiveDocument.FullName
    monItem.Send
    Set ol = Nothing
    MsgBox "la demande a bien été transmise "
     
     
    End Sub
    Pourriez-vous m'apporter un peu d'aide ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Bonjour Idryss33 et bienvenue sur DVP.com

    Il n'y a pas de "mauvaises" questions, juste de mauvaises réponses si on ignore certaines questions. Le forum est là pour aider tout le monde et tout le monde peut aider (à son niveau).

    Comme tu es nouveau, je te donne quelques conseils généraux sur le site DVP.com.

    Lorsque tu ajoutes du code, il faut utiliser les balises code pour encadrer ton code et le mettre en évidence pour nous (pour cela, il faut cliquer sur le bouton"#" situé tout à droite de la 2nde ligne de la barre d'outils de l'éditeur des messages. je l'ai fait pour toi (pour que tu vois le résultat).

    En plus du présent forum, de nombreuses ressources sont à ta disposition :
    - une FAQ
    - des tutoriaux
    - des critiques de livres

    Pour répondre plus précisément à ta demande, il nous faudrait ta version de Word. C'est situé juste au-dessus de l'éditeur.

    Mais si on suppose que tu as un Word récent (2010...) et que tu es sur PC (vu que le type de répertoire que tu utilises dans ta macro), il faut préciser le type de format et pas seulement le nom du fichier (si Word prend le format par défaut donc celui de Word comme tu aurais pour un fichier ".docx". Pour Word 2010,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.SaveAs FileName:="H:\Réclas\" & Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yy") & "_" & nom & ".pdf"
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.SaveAs FileName:="H:\Réclas\" & Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yy") & "_" & nom & ".pdf", ExportFormat:=wdExportFormatPDF
    Si certains éléments te paraissent encore complexes ou si tu as des besoins précis, n'hésite pas à nous solliciter, nous essayerons d'y répondre.

    A bientôt

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire de sinistres
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gestionnaire de sinistres
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci pour la réponse rapide.
    Je suis sous Visual Basic 6.3 et Microsoft Word 2007, sous PC.

    J'ai essayé de coller le code que tu m'as donné, cependant il me sort un message d'erreur "Erreur de compilation : argument nommé introuvable" et me surligne le

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Iryss33,

    Opus, excuse-moi, j'ai fait un mauvais copier-coller entre ton code (ActiveDocument.SaveAs et le mien). Voici la ligne corrigé (Désolé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.ExportAsFixedFormat OutputFileName:="D:\Temp\" & Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yy") & "_" & nom & ".pdf", ExportFormat:=wdExportFormatPDF
    @+

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pour la date, il n'est pas nécessaire d'utiliser la fonction format plusieurs fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Date, "dd-mm-yy")
    renvoie la même chose, mais en plus court.

    Autre astuce, quand on nomme le chemin complet, il n'est pas nécessaire de modifier "ChangeFileOpenDirectory", cette ligne peut être supprimée.

    Si tu utilises des variables, prend le réflexe de les typer.

    est mieux et si tu utilises une majuscule dans les variables, le VBE (Visual Basic Editor) changera la minuscule en majuscule lors de la frappe, c'est une indication parfois utile.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire de sinistres
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gestionnaire de sinistres
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour toutes vos infos !
    Ca fonctionne, le document est bien converti et exploitable au format PDF.
    Cependant, la création du mail outlook avec pièce jointe renvoie le document word.
    Je pense que, comme le format change, il est impossible d'envoyer le document actif sous son format pdf et que du coup je dois rajouter du code pour aller récupérer le document pdf là où il a été enregistré...

    Y'a-t-il une autre solution ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    ça me semble normal.
    Tu définis le fichier avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mondoc.Add ActiveDocument.FullName
    qui renvoie le nom du document Word.
    Si tu souhaites le fichier pdf, il faut utiliser ce morceau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "H:\Réclas\" & Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yy") & "_" & nom & ".pdf"
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. Réponses: 13
    Dernier message: 09/05/2011, 11h20
  2. Dimensionner tableau word à l'aide d'une macro
    Par yannick113 dans le forum VBA Word
    Réponses: 4
    Dernier message: 07/12/2010, 11h14
  3. gestion tableau sous word à l'aide d'une macro
    Par yannick113 dans le forum VBA Word
    Réponses: 14
    Dernier message: 18/04/2010, 21h56
  4. Envoi à l'aide d'une macro d'un document Word en fichier joint
    Par bellelay dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/11/2008, 17h46
  5. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28

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