Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 14h14   #1
Invité de passage
 
Inscription : 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 : 1
Points : 1
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 11h03   #2
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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 :
1
2
    ActiveDocument.SaveAs ("Formulaire Client")
    Call ActiveDocument.SendForReview("Toto@maison.com", "Objet du mail", True, True)
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 15h59   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 345
Points : 29 255
Points : 29 255
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 18h57   #4
Invité de passage
 
Inscription : 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 : 1
Points : 1
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 19h38   #5
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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.
Citation:
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 ?
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 19h40   #6
Invité de passage
 
Inscription : 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 : 1
Points : 1
Oui on part sur cette base, ça sera déjà bien !
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 19h57   #7
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Code :
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
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 19h57   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 345
Points : 29 255
Points : 29 255
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 20h08   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 345
Points : 29 255
Points : 29 255
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 20h32   #10
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Re.

Citation:
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 ).
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 19h41   #11
Invité de passage
 
Inscription : 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 : 1
Points : 1
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 :
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 19h53   #12
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 986
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

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

Informations forums :
Inscription : février 2010
Messages : 986
Points : 1 598
Points : 1 598
Envoyer un message via MSN à carden752
Bonjour,

C'est logique tu as une procédure dans une autre.
Citation:
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 :
1
2
3
4
5
Private Sub CommandButton2_Click()
End sub
Sub EnvoiMonFormulaire()
...
End sub
Ou
Code :
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
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 20h18   #13
Invité de passage
 
Inscription : 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 : 1
Points : 1
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 :
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 20h41   #14
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 20h43   #15
Invité de passage
 
Inscription : 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 : 1
Points : 1
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 20h57   #16
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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>
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 21h34   #17
Invité de passage
 
Inscription : 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 : 1
Points : 1
bon ça va mieux.

Me reste encore une erreur.

Code :
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
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 21h55   #18
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Le problème vient du fait que le nom du fichier ne contient pas le dossier.
Pour corriger le problème, essayer :

Code :
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.
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 22h10   #19
Invité de passage
 
Inscription : 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 : 1
Points : 1
Bonsoir,

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



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

Encore MERCI!!!!!!!!!
katiska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 22h17   #20
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Bonne soirée.
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web