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

Word Discussion :

création bouton interactif (pour envoi fichier par mail) [WD-2003]


Sujet :

Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut création bouton interactif (pour envoi fichier par mail)
    Bonjour,

    J'ai créé un formulaire avec des cases à cocher. Mon souci est que j'aimerais mettre un bouton "envoyer" à la fin du formulaire pour que nos clients puissent nous le renvoyer directement.

    Autre chose : j'ai lu qu'il fallait que le formulaire une fois rempli soit sauvegardé avant que les clients appuient sur le bouton "envoyer"

    J'ai peu de connaissances en développement donc j'aurais besoin d'aide

    Merci d'avance.

    Katiska

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Pour simplement lancer le gestionnaire de mail avec un Email pré-rempli (adresse et objet), créé un lien hypertexte du format :
    mailto:<votre adresse email>.
    Depuis l'éditeur de lien, il possible de préciser un objet, et le texte à afficher.
    Mais ceci ne joindra pas le document automatiquement.

    Pour enregistrer et envoyer le fichier par Email, il faudra du code.
    (donc le client devra autoriser l'utilisation des macros).

    exemple de code à associer à un bouton <envoyer>:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveDocument.SaveAs ("Formulaire Client")
        Call ActiveDocument.SendForReview("Toto@maison.com", "Objet du mail", True, True)

  3. #3
    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,

    SendForReview est abandonné dans les nouvelles versions de Word, c'était le Routing d'un document et une réponse est attendue.

    Pour envoyer un document par courrier, il faut utiliser une instance de logiciel de courrier, en général on utilise Outlook.

    Il faut que tes "correspondants" aient Outlook, si ce n'est pas le cas, ça devient plus compliqué.
    On peut aussi utiliser CDO.
    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 !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    J'ai créé un bouton envoyer en bas de mon formulaire avec un lien hypertexte vers notre adresse mél.

    Par contre où puis-je insérer le code que vous indiquez ?? J'aimerais que le formulaire sois mis en pièce jointe automatiquement quand les clients cliquent sur le bouton envoyer

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Le code est à insérer dans l'éditeur VBA. <ALT> + <F11>, ajouter un module, déclarer une macro, et ajouter le code.
    Puis associer cette macro à un bouton.

    Mais Heureux-Oli à signalé que le code donné en exemple précédemment, ne fonctionnerait pas dans les dernières versions d'Office.
    (La seule raison que je l'ai proposé, c'est que ça fonctionne pour Office 2003).
    Mais ce n'est pas une bonne idée de partir sur du code non portable.

    En répondant aux questions d'Heureux-Oli, d'avantage des solutions pourront être proposées.
    Il faut que tes "correspondants" aient Outlook, si ce n'est pas le cas, ça devient plus compliqué.
    Est-ce qu'on peut partir du principe que les clients utilisent Outlook ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Oui on part sur cette base, ça sera déjà bien !

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    En associant ce code à un bouton, et en mettant à jour les champs entre <>,
    ça devrait fonctionner.

    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
    Sub EnvoiMonFormulaire()
        ' Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
        Dim mailApp As Outlook.Application
        Dim email As Mailitem
     
        Set mailApp = New Outlook.Application
        Set email = mailApp.createitem(olmailitem)
     
        ActiveDocument.SaveAs ("<nom du formulaire>")
        With email
            .to = "<adresse email>"
            .Subject = "<objet du message>"
            .body = "<corps du message>"
            .attachments.Add "<nom du formulaire>"
            .Display
            '.send
        End With
    End Sub

  8. #8
    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,

    Si on ne souhaites pas utiliser Outlook, il faut utiliser CDO.

    On trouve un exemple dans la FAQ Access :
    http://access.developpez.com/faq/?pa...ailPieceAttach
    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 !

  9. #9
    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 revenir au code SendForReview, cette commande existe toujours en VBA, c'est dans l'interface graphique que je ne la trouve plus.
    On peut donc toujours utiliser ce code avec la version 2010.
    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 !

  10. #10
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Re.

    Pour revenir au code SendForReview, cette commande existe toujours en VBA,
    [...]On peut donc toujours utiliser ce code avec la version 2010.
    Merci pour cette précision.
    Dans ce cas, si au final c'est Outlook qui est utilisé, mon option préférée reste la solution du post #2.

    Pourquoi?
    Cette solution tiens en 2 lignes de codes, et ne nécessite pas d'ajout de référence de librairie chez le client.
    (Même si la finalité de la fonction "Review " n'est pas utilisée ).

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    Je ne dois pas être très douée mais voici le code que j'ai copié collé et il y a une erreur :

    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
    Private Sub CommandButton2_Click()
    Sub EnvoiMonFormulaire()
        ' Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
        Dim mailApp As Outlook.Application
        Dim email As Mailitem
     
        Set mailApp = New Outlook.Application
        Set email = mailApp.createitem(olmailitem)
     
        ActiveDocument.SaveAs ("<questionnaire_motel>")
        With email
            .to = "<>"
            .Subject = "<questionnaire hôtel>"
            .body = "<corps du message>"
            .attachments.Add "<questionnaire_motel>"
            .Display
            '.send
        End With
    End Sub
    Voici la réponse qu'on me fait : erreur de compilation end sub attendu

    J'ai donc un bouton à la fin de mon questionnaire avec comme nom pour le moment : CommandButton

    Si vous pouviez me dire quoi faire

  12. #12
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    C'est logique tu as une procédure dans une autre.
    Private Sub CommandButton2_Click()
    Sub EnvoiMonFormulaire()
    Il faut soit que tu exécutes ce code lors du clic, soit dans la procédure Envoi mon formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton2_Click()
    End sub
    Sub EnvoiMonFormulaire()
    ...
    End sub
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton2_Click()
    'Sub EnvoiMonFormulaire() Commenter ou supprimer la ligne de début de procédure
    ...
    End sub
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    Merci pour la réactivité

    J'ai choisi la 2ème solution. Maintenant j'ai une autre erreur : erreur de compilation type défini par l'utilisateur non défini

    Voici mon nouveau 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
    16
    17
    18
    19
    Private Sub CommandButton2_Click()
    'Sub EnvoiMonFormulaire()
        ' Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
        Dim mailApp As Outlook.Application
        Dim email As Mailitem
     
        Set mailApp = New Outlook.Application
        Set email = mailApp.createitem(olmailitem)
     
        ActiveDocument.SaveAs ("<questionnaire_motel>")
        With email
            .to = "<>"
            .Subject = "<questionnaire hôtel>"
            .body = "<corps du message>"
            .attachments.Add "<questionnaire_motel>"
            .Display
            '.send
        End With
    End Sub
    L'erreur souligne cette ligne : Dim mailApp As Outlook.Application

  14. #14
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Le commentaire inclus dans le code
    'Ajouter la référence "Microsoft Outlook x.x Objet Librairie",
    c'était pour rappeler qu'il faut Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
    Sinon, le compilateur ne connaîtra pas les objets du type Outlook avec comme erreur :
    erreur de compilation type défini par l'utilisateur non défini

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    D'accord mais faut que je corrige quoi dans le code dans ce cas ??

    Désolée mais là c'est vraiment du chinois pour moi

  16. #16
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Sous l'éditeur de code VBA, Menu "outil"->"Références" chercher dans la liste Microsoft Outlook x.x Objet Librairie.
    Cocher cette ligne puis cliquer sur <Ok>

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    bon ça va mieux.

    Me reste encore une erreur.

    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
    Private Sub CommandButton2_Click()
    'Sub EnvoiMonFormulaire()
        ' Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
        Dim mailApp As Outlook.Application
        Dim email As Mailitem
     
        Set mailApp = New Outlook.Application
        Set email = mailApp.createitem(olmailitem)
     
        ActiveDocument.SaveAs ("questionnaire_motel.doc")
        With email
            .to = "<>"
            .Subject = "<questionnaire hôtel>"
            .body = "<corps du message>"
            .attachments.Add "questionnaire_motel.doc"
            .Display
            '.send
        End With
    End Sub
    L'erreur est sur cette ligne : .attachments.Add "questionnaire_motel.doc" Il est dit fichier introuvable

  18. #18
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Le problème vient du fait que le nom du fichier ne contient pas le dossier.
    Pour corriger le problème, essayer :

    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
    Private Sub CommandButton2_Click()
    ' Ajouter la référence "Microsoft Outlook x.x Objet Librairie"
        Dim mailApp As Outlook.Application
        Dim email As Mailitem
        
        Set mailApp = New Outlook.Application
        Set email = mailApp.createitem(olmailitem)
        
        ActiveDocument.SaveAs ("questionnaire_motel.doc")
        With email
        .to = "<????@???.fr>"
        .Subject = "<questionnaire hôtel>"
        .body = "<corps du message>"
        .attachments.Add ActiveDocument.FullName
        .Display
        '.send
        End With
    End Sub
    P.S. :
    Quelques conseils : lorsqu'on insère que code, merci de le sélectionner puis d'utiliser le bouton .
    Ne jamais poster d'adresse email sur un forum, (risque important de se voir spammer).
    => Il est conseillé d'éditer les posts #13 et #17 pour retirer les adresses emails.

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    Vous êtes supers !!!!!!!!!!! C'est résolu tout fonctionne



    J'ai édité tous mes posts pour supprimer l'adresse mél !!!

    Encore MERCI!!!!!!!!!

  20. #20
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Content pour vous de voir que ça fonctionne.
    Il ne reste plus qu'à noter le sujet résolu (avec le bouton )

    Bonne soirée.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/11/2010, 09h56
  2. Réponses: 12
    Dernier message: 20/10/2010, 11h27
  3. Envoi fichier par mail
    Par CmzxNene dans le forum WinDev
    Réponses: 8
    Dernier message: 10/08/2010, 12h23
  4. Envoi fichier par mail à partir d'Access
    Par Adrien972 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/03/2009, 23h01
  5. Supprimer macro avant envoi fichier par Mail
    Par mattwarend dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 19/11/2008, 16h58

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