ENVOI AUTOMATIQUE DE MAIL (AVEC PIÈCE JOINTE) EN VBA : EXCEL, WORD OU ACCESS PAR

cs_Pirotes31 Messages postés 37 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 3 juillet 2015 - 26 mai 2005 à 08:45
castor750108 Messages postés 1 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 juin 2007 - 18 juin 2007 à 18:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31545-envoi-automatique-de-mail-avec-piece-jointe-en-vba-excel-word-ou-access-par-oulook-express-ou-modzilla-thunderbird-ou-d-autres

cs_Pirotes31 Messages postés 37 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 3 juillet 2015
26 mai 2005 à 08:45
Merci merci merci et encore merci!

Voilà la source que j'attendais depuis tant de temps!
J'ai laissé des messages sur tout un tas de forum sans obtenir aucune réponse et ton code arrive comme par magie!
Il m'a été d'un grand secours.
Je dois souligner le fait qu'il est particulièrement bien commenté et modulable à souhait.
Je t'ai mis 10/10 afin de te prouver ma gratitude car je désespérais de voir un tel code d'envoi de mail automatique.

C super, et encore merci.

Miss P. :-)
papatte62360 Messages postés 2 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 31 mai 2005
31 mai 2005 à 09:22
impecc!
merki
seanflip Messages postés 3 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 7 juin 2005
6 juin 2005 à 17:21
Salut papatte62360,
Vraiment un joli code bien expliqué et tout...
Mais j'ai deux problèmes :
-Je voulais le faire marcher sur Mozilla thunderbird, mais rien a faire c toujours outlook express qui s'ouvre,...
-deuxiéme problème surlequel je commence à me tendre, c'est celui des copies du message, j'arrive à accéder à ce champs, mais y vient s'y coller la ligne suivante : "subject=....";
alors ban, c'est vrai qu'il est super ton code, d'ailleurs si je votais je lui mettrais 10 car t'as fait un gros efforts sur les explications et ça c'est super; mais pour ce que je veux en faire, c'est pas le top de ce que devrait être le top.
Bon ben si t'as une idée pour m'aider, tant mieux, sinon tu voulais des remarques sur ton prog, en voila.
salut
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
6 juin 2005 à 23:31
Bjr SEANFLIP

En ce qui concerne Thunderbird ou OutLookExpress, tu dois définir thunderbird comme logiciel de messagerie par défaut. Le prg VBA se contente de communiquer les données au client de messagerie PAR DEFAUT du système. Lorsque tu lance (manuellement) Thunderbird il doit te demander si tu veux qu'il devienne ton client mail par défaut

En ce qui concerne les copies. J'ai essayé avec Cc="adresse" ça fonctionne

Cela donne après la ligne 81 :

Hyperlien=Hyperlien & "&Cc=" & VariableAdresse

ou

Hyperlien=Hyperlien & "&Cc=toto@xxx.fr"

Il ne faut pas oublier le & à l'intérieur des "" avant Cc

Essaie ça

JC
seanflip Messages postés 3 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 09:49
Salut JC,
Merci pour ces précieux conseils, c'est bo ça marche impeccable.
Mais j'ai encore un souci, c'est pour la mise en forme du mail, j'ai essayé
, vbCrLf et ch(13)(10), mais y a rien qui fait revenir le prompt à la ligne, tout mon mail est écrit sans saut de ligne.
ça me pose quand même un problème....
Si vous avez des idées merci d'avance
seanflip Messages postés 3 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 09:53
Salut,
Merci pour ta réponse JC, ça marche impeccable.
Mais j'ai un souci dans la mise en forme du mail, j'arrive pas à revenir à la ligne, j'ai essayé
, ch(13)ch10),vbCrLf mais rien à faire ça revient pas a la ligne...
Si vous avez des idées, je suis preneur, merci d'avance
Salut les mecs
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
7 juin 2005 à 10:56
Slt SEANFLIP

Va voir dans le code du classeur Excel, c'est utilisé pour lister les taches lignes par lignes

(LeMessage=LeMessage & NbTaches & " : " & Selection.Value & "%0A")

Il faut utiliser 0A en hexa : %0A

Ne me demande pas pourquoi VbCrLf ne fonctionne pas... je ne sais pas

JC
jypandre Messages postés 1 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 4 août 2005
4 août 2005 à 15:52
Bonjour, très bon ton code, j'aurais voulu savoir si c'est possible d'y ajouter une commande (shell ou autre) afin d'y mettre par défaut un papier à lettre... Merci d'avance
cs_dodii Messages postés 12 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 15 mars 2008
16 août 2005 à 18:12
bonjour; l'idée de ce code m'a bien plu mais le probleme c'est que je suis vraiment debutant si vous permettez bien de m'expliquer comment faire pour l'executer j'ai recopié le code dans un module excel et apres ?? je suis sur office excel 2003 .
cs_ordino Messages postés 20 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 13 novembre 2012
14 sept. 2005 à 20:21
14 sept. 2005
Je te donnes une note de 10/10.
J'ai trouvé ton code par Google. Code simple et efficace.
Merci beaucoup.
ordino
cap34 Messages postés 1 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 23 septembre 2005
23 sept. 2005 à 16:50
Merci!
c'est exactement ce que je cherchais (c'est mon chef qui va être content!!)

Chris
jfvernoud Messages postés 1 Date d'inscription vendredi 30 septembre 2005 Statut Membre Dernière intervention 15 octobre 2005
15 oct. 2005 à 19:37
Bonjour à tous,

Excellent code mais je rencontre un problème de pièce jointe et ce malgré un paramétrage de la macro pour outlook 2003.

En effet l'envoie automatique se déroule très bien mais aucune pièce jointe n'est insérée en revanche il apparaît dans le corps du message le texte suivant :

Fc :Envoi mail depuis Excel.xls

Ici un petit texte m'indiquant les améliorations, critiques ou autres. Enfin bref un texte pour vérifier qu'il est bien envoyé - (suivant cellule B3)

Adresse : OK envoi et réception en B1
Objet : Ok en B2
Texte : OK en B3
Pièce jointe : c:\Envoi mail depuis Excel.xls en B4 le fichier Envoi mail depuis Excel.xls est bien sous C

Je ne vois pas ou peut être mon erreur.

Merci d'avance de votre aimable réponse,

Cordialement,

JFV
cbr600fs Messages postés 14 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 20 février 2006 2
24 oct. 2005 à 21:17
Bonjour,

Je suis également débutante et j'aurai voulu savoir comment indiquer que je veux qu'une partie du corps du message soit en gras ou en couleur rouge. J'arrive à effectuer les sauts de lignes via chr(10) et les retours via chr(13) mais en ce qui concerne Gras/Italique ou changement de couleur c'est une autre histoire...
De l'aide serait la bienvenue.
Merci,
Christelle
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
25 oct. 2005 à 23:07
Ce n'est pas que je me désinteresse des questions posées mais je n'étais pas revenu sur vbfrance depuis le mois de juin et je viens de les découvrir. Je vais essayer d'y réfléchir mais je ne promets pas une (des) réponse(s) rapide(s) ni même des réponses tout court...

Jean
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
25 oct. 2005 à 23:23
A l'intention de DODII

Il faut ecrire une procédure (macro) dans le classeur du type

Sub EssaiEnvoi
dim Adr,Obj,Cps,Pièce
Adr="toto@adresse.xxx"
Obj="sujet du message"
Pièce="c:\.......\MonFichier.jpg"

EnvoiMail Adr,Obj,Cps,Pièce
End Sub

Et associer cette procédure (macro) EssaiEnvoi à un bouton du classeur par exemple


Vous pouvez en trouver un exemple d'utilisation dans le classeur Excel fourni dans le zip

Bonne utilisation

Jean
PhV42 Messages postés 1 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005
2 nov. 2005 à 21:58
Merci pour cet excellent bout de code; une fois lancé dans la bonne direction permet de (presque) tout faire; dans mon cas envoi de mails personnalisés contenant un tableau XL, collé comme une image dans le mail ...
Merci !
PhV
cs_dg69 Messages postés 6 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 décembre 2005
25 nov. 2005 à 19:54
celà a l'air bien et je vais l'essayer.
Les explications sont claires.

Mais est il possible de l'adapter pour que la pièce jointe soit en fait le document sur lequel on travail dans word ou excel

c'est à dire automatiser : fchier/envoyer vers/destinataire du message (en tant que pièces jointe) et compléter automatiquement les champs A:, le message et l'action d'envoyer.
merci
biwann Messages postés 4 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 17 novembre 2008
29 déc. 2005 à 14:29
Bravo, très bonne idée le coup du mailto: qui permet de pallier au fait que la methode ActiveDocument.SendMail ne permet pas de spécifier le destinataire ni l'objet directement.

Je l'ai modifié pour prendre le nom du fichier courant directement et pour récupérer des champs de mon document qui me permettent de renseigner l'objet du mail de manière générique (j'utilise ActiveDocument.Fields(1).Result pour le champ 1 par exemple).

Autre remarque : les "Attendre 1" au niveau de la boucle de la piece jointe ne sont pas utiles pour Thunderbird. C'est marrant de voir les menus se dérouler tous seuls pour aller chercher la PJ.
biwann Messages postés 4 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 17 novembre 2008
29 déc. 2005 à 14:32
Reponse pour dg69
il suffit simplement de remplacer la ligne :

SendKeys PJ, True

par :

SendKeys ActiveDocument.FullName, True
cs_dg69 Messages postés 6 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 décembre 2005
29 déc. 2005 à 19:48
Merci BIWANN,

Mais je n'arrive pas à envoyer le document word sur lequel je travail même en utilisant SendKeys ActiveDocument.FullName, True.

Je n'ai aucune pièce jointe dans mon mail (j'ai outlook 2003).
papillongj Messages postés 3 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 31 janvier 2006
30 janv. 2006 à 20:24
Reponse à DG69

Sauve le document actif
ActiveDocument.SaveAs FileName:="c:\temp\nom_fichier.doc"
Puis lance la macro avec en parametre PJ le chemin du fichier enregistré "c:\temp\nom_fichier.doc"

Question :
Tout fonctionne à merveille. Sauf que je souhaite insérer dans le corps du mail un lien vers une page web qui comporte le caractère "&" dans son adresse.
Lorsque je fait:
texte_a_inserer = "toto&&tot"
HyperLien = HyperLien & "&Body=" & texte_a_inserer
Il m'écrit uniquement "toto" et pas le reste

Il interprete le "&" et ne le considère pas comme un caractère à écrire comme du texte dans le mail.
est ce que qqun à une solution?

Merci !!
papillongj Messages postés 3 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 31 janvier 2006
30 janv. 2006 à 20:28
Bonjour

pour DG69:
Sauve le document puis envoi le avec en parametre le chemin
ActiveDocument.SaveAs FileName:="c:\temp\document_en_cours.doc"

J'ai une question:
Je souhaite insérer dans le corps du mail une adresse web qui comprend le caractère "&". Le problème c'est qu'il l'interprète et ne le considère pas comme un caractère.

Exemple:
Corps = "tototo&toto"
Il écrit uniquement tototo

Est ce que qqun à une solution?

Merci!!!
papillongj Messages postés 3 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 31 janvier 2006
31 janv. 2006 à 10:26
sebosiris Messages postés 3 Date d'inscription dimanche 5 février 2006 Statut Membre Dernière intervention 12 décembre 2017
12 févr. 2006 à 20:57
Bonjour,

je suis un vrai debutant en matiere de VBA et ce module me parait etre très pratique.
Le problème c'est que sous Word 2000 je n'arrive pas à l'utiliser.
Je souhaiterai envoyer automatiquement le document sur lequel je travaille. Lorsque je crrée une procedure pour appeler ce module, voila ce qui s'affiche dans l'adresse et le sujet : "vrai"

voici la procedure que j'ai placée dans le module du document actif :
Sub EssaiEnvoi
dim Adr,Obj,Cps,Pièce
Adr="toto@adresse.xxx"
Obj="sujet du message"
Pièce="c:\.......\MonFichier.jpg"

EnvoiEMail Adresse="adresse desirée", Obj="...",Cps,Pièce
End Sub
Bref cela ne fonctionne pas comme je le voudrai.
De plus je souhaiterai associer cette procedure d'envoi de mail a un bouton de commande "valider" d'un userform mais je ne sais pas faire.

Pourriez vous m'aider svp?
ceci m'aiderai bcp pour mon travail
seb
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
12 mars 2006 à 23:20
Pour seb (SEBOSIRIS)

Sub EssaiEnvoi
dim Adr,Obj,Cps,Pièce
' Ces instructions alimentent les variables Adr,Obj et Pièce
' qui sont transmises à la procédure EnvoiMail
Adr="toto@adresse.xxx"
Obj="sujet du message"
Pièce="c:\.......\MonFichier.jpg"
Cps="Ici le corps du message"
' et si le corps et trop long, on peut l'aliementer en plusieurs fois :
Cps=Cps & " la suite du corps" & vbCrLf
Cps=Cps & " encore une suite après un saut de ligne ajouté par la variable vbCrLf"

EnvoiEMail Adr, Obj,Cps,Pièce
End Sub

La réaction de vb qui affiche 'vrai' est normale car ce qui est transmis à la procédure
EnvoiMail, ce n'est pas le contenu de Adr mais l'expression : Adr="toto@adresse.xxx"
et cette expression est vraie

Donc, il faut écrire soit

Adr="toto@adresse.ddd"
puis
EnvoiMail Adr

soit directement

EnvoiMail "toto@adresse.ddd"

idem bien sur pour l'objet, le corps et les pièces jointes

En ce qui concerne l'utilisation du bouton dans un form, il faut placer votre procédure dans la procédure événementielle Click associée au bouton (double click sur le bouton et vb affiche la procédure) :

Sub MonBouton_Click()
dim Adr,Obj,Cps,Pièce
' Ces instructions alimentent les variables Adr,Obj et Pièce
' qui sont transmises à la procédure EnvoiMail
Adr="toto@adresse.xxx"
Obj="sujet du message"
Pièce="c:\.......\MonFichier.jpg"
Cps="Ici le corps du message"
' et si le corps et trop long, on peut l'aliementer en plusieurs fois :
Cps=Cps & " la suite du corps" & vbCrLf
Cps=Cps & " encore une suite après un saut de ligne ajouté par la variable vbCrLf"

EnvoiEMail Adr, Obj,Cps,Pièce
End sub

bonne utilisation

Jean
Tanatloc92 Messages postés 1 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 27 mars 2006
27 mars 2006 à 11:54
Excellent code !

Un petit rajout pour les utilisateurs de Outlook Office 2000, non compatible pour l'envoi (bon, OK, ya pô grande différence...)

Sub Office2000OutLook()
'Initialisation des tableaux de touches pour Office Outlook 2000
' Pour une pièce jointe
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "f" ' appel du sous-menu fichier par la touche f
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "^{ENTER}" ' Envoi du message avec Ctrl-Entrée
End Sub

Et encore merci nerim ;-)
sanyohan13 Messages postés 7 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 23 mars 2009
15 juin 2006 à 09:15
salut,
tu n'utilise pas le chrono que tu as mis dans ta partie temporisation???
cyprien35 Messages postés 1 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 26 juin 2006
26 juin 2006 à 09:52
Bonjour, j'ai un petit problème pour envoyer des é des è et des & (je compose mon mail en HTML, un é=é)
Quelqu'un aura t-il une solution ?
Merci pour la réponse et pour ce bout de code !
mechive Messages postés 2 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 12 août 2006
12 août 2006 à 18:35
Bonjour, merci pour ce code.
Mais j'aimerais que l'on ne voit pas les fenetres s'ouvrir pour l'envoi du mail.
J'ai essayé de mettre dans le code :
application.screenupdating=false (au début du code)
application.screenupdating=true (à la fin du code)
Mais cela ne fonctionne pas. Auriez-vous une solution ?
Merci
jeanmich33 Messages postés 1 Date d'inscription mercredi 30 août 2006 Statut Membre Dernière intervention 30 août 2006
30 août 2006 à 22:55
Excellent l'exploitation du "mail to".

j'ai cependant quelques réserves qui me sont apparues à l'usage:
limitation de l'URL à 1024 octets ce qui ampute largement le corps du message, à moins qu'il me manque des éléments?

D'autre part, j'aimerais connaître l'astuce de PhV42 pour intégrer un tableau "sous forme d'image" dans le corps du message avec cette même méthode "mailto".

Et enfin, je confirme que %0A ou %0D fonctionnent pour les retours chariot dans le corpus....

valal vala....

Amitiés à tous!
Jean Michel
VraiGligli Messages postés 1 Date d'inscription mardi 26 septembre 2006 Statut Membre Dernière intervention 26 septembre 2006
26 sept. 2006 à 14:45
Ce n'est pas original, mais... merci pour ce code ;-)

J'ai réussi à le faire fonctionner sans connaître VB.

Pour Outlook 2002 utilisant Word comme éditeur de mail, le code pour envoyer le message est Ctrl+Alt+Maj E, soit pour VB : ^%E
Padawan62 Messages postés 1 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 5 octobre 2006
5 oct. 2006 à 15:00
Bonjour à tous,

Pour commencer, je précise que je suis plus qu'un novice de VB! J'ai essayé de suivre le fil de ces messages mais ça part un peu dans tous les sens. Est-ce que quelqu'un pourrait m'aider à émerger SVP??? Car je suis complétement perdu!!
En fait, je désire envoyer (avec une messagerie particulière à mon entreprise) le document word sur lequel je travaille en pièce jointe à l'aide d'un bouton.. Quel code dois-je utiliser? il y en a tellement sur cette page.. D'avance merci ,pour toute proposition..
Padawan
nesos Messages postés 1 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 1 décembre 2006
1 déc. 2006 à 21:03
Bonjour,
Félicitation pour ce code, cependant j'ai un soucis avec Outlook 2000 et windows xp, j'ai une boite de dialogue qui apparait avec le message suivant : "L'argument de la ligne de commande n'est pas valide. Vérifiez le commutateur que vous utilisez."
C'est quoi un commutateur ? et de quelle ligne de commande s'agit il ?
Merci
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
2 déc. 2006 à 22:38
Bonjour,

Pour sanyohan13

J'utilise mon Timer Attendre en ligne 93 (Attendre 5 lors de l'appel du client de messagerie)
puis en lignes 128, 132 et 134 pour l'envoi des touches pour les pièces jointes
Normalement, ces trois "Attendre 1" sont inutiles... mais je conseille de les garder (voire même d'augmenter le délai) en phase de mise au point pour bien voir les menus se dérouler et corriger les éventuels appels de touches qui ne fonctionnent pas.

J'avoue que je n'ai pas essayé avec les dernières versions d'Outlook (2002, 2003 et pourquoi pas 2007 version béta)

Jean
chasss75016 Messages postés 1 Date d'inscription mardi 5 décembre 2006 Statut Membre Dernière intervention 6 décembre 2006
6 déc. 2006 à 12:41
Bonjour à tous,

Je suis moi aussi novice en VB... et je me heurte à un problème sur l'envoi d'e-mails avec pièce jointe sur outlook 2003...
Le code "%i" sensé reproduire l'action Alt+i ne fonctionne pas... Résultat : au lieu d'insérer une pièce jointe à l'e-mail, je me retrouve avec l'insertion dans le corps de texte de la lettre "f" suivie de l'adresse renseignée en B4 sur le fichier excel... Qu'en pensez vous ? Quelle solution potentielle ?

Merci pour votre aide... je ne vois pas trop quoi faire là...
jm_r22000 Messages postés 1 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 18 décembre 2006
18 déc. 2006 à 16:13
Bonjour à tous,
J'ai le même souci que CHASSS75016 : pas de pièce jointe avec outlook 2003, la commande Alt+i ne fonctionne pas car le curseur se trouve au niveau du corps du message.
Peut-être qu'il faut rajouter une commande pour placer le curseur dans la sujet du message avant d'attacher la pièce jointe.
clark1978 Messages postés 1 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 13 février 2007
13 févr. 2007 à 12:25
Bonjour,

ce code et top, il répond à une question que j'ai eu la semaine dernière.
Pour aider chasss75016 et jm_r22000, j'utilise aussi Outlook 2003 et j'ai apporté une petite modif suivante:

Sub Office2003OutLook()
'Initialisation des tableaux de touches pour Office Outlook
' Pour une pièce jointe
TouchesPJ(0) = 3 ' Nombre de touches nécessaires
TouchesPJ(1) = "%a" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "{RIGHT}" ' appel du sous-menu fichier par la touche f
TouchesPJ(3) = "f"
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" ' Envoi du message avec Alt-v
End Sub

J'ai remplacé l'envoie de la touche "%i" par l'envoie des touches "%a" et flèche de droite.
En effet le "%i" ouvrait une fenêtre de recherche de contact au lieu du menu Insertion. Surement un bug D'outlook2003.

Encore brevo pour ce code superbement documenté.
seanbat Messages postés 1 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 15 mars 2007
15 mars 2007 à 15:03
Bonjour,
merci pour ce code vraiment excellent, je l'utilise avec Excel et Outlook 2003, et ca fonctionne très bien.
Le seul problème que je rencontre est que lorsque le mail se compose, il désactive la touche VerrNum et ne la réactive pas.
Je ne sais pas d'ou cela peut venir???
SUMACNAJ Messages postés 35 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 13 septembre 2007
4 mai 2007 à 09:54
Bonjour,

J'aimerais obtenir de l'aide sur l'utilisation de ce code. Mon but est de mettre à disposition un formulaire sous Excel avec des cellules à remplir et des menus déroulants. Une fois que mon utilisateur aura complété son document, il pourra l'envoyer via le bouton mis à disposition sous Excel vers une adresse mail unique.

Mais je suis novice en VB et j'ai un grand besoin de conseils.

Par avance merci de vos réponses, mon adresse mail est tof.jan@laposte.net
SUMACNAJ Messages postés 35 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 13 septembre 2007
9 mai 2007 à 11:56
Bonjour,

Le code me pose un problème parce que je voudrais pouvoir envoyer plusieurs cellules mais dans le code il est indiqué Range("B3") pour le texte et Range("B4") pour la pièce jointe, moi je voudrais que mon texte aille de Range("B3") à Range("B13"), comment faire ?

Merci de vos réponses et de votre aide.
Crusoe30 Messages postés 3 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 11 mai 2007
10 mai 2007 à 21:47
Bonjour

Moi j'ai un petit souci, j'utilise Outlook 2003, le code à l'air de bien marcher, le fichier est bien présent dans l'onglet "Elements envoyès" mais je ne recois aucun fichier
Crusoe30 Messages postés 3 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 11 mai 2007
11 mai 2007 à 12:46
Ouppsssss,

Autant pour moi, tout marche trés bien, simplement les mails sont arrivés aprés avoir posté le mess ci dessus

Par contre je cherche les combinaisons de touches pour utiliser ce programme avec Lotus Notes 4.6... si quelqu'un les connait ....

Merci
jen2204 Messages postés 2 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 13 août 2008
31 mai 2007 à 13:32
Très bon programme !
Je voudrais en plus que les fenêtre ne s'affichent pas lors de l'envoi du message ! est-ce possible ?
Merci d'avance.
cs_nerim Messages postés 82 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 14 avril 2012
11 juin 2007 à 11:58
Pour SUMACNAJ

Comme dit dans ma réponse à votre mail, l'envoi d'une plage nécessite la mise en forme de cette plage en texte (c'est un texte (String) qu'attend la procédure EnvoiMail). On ne peut se contenter de juxtaposer le contenu de toutes les cellules de la plage, il faut reconstituer le tableau

Deux solutions :

*Transformer la page Excel en tableau HTML (mais votre programme de messagerie risque de vous demander une confirmation pour un envoi de message en HTML, ce qui rompt l'automatisme)

*Transformer la plage Excel en texte avec tabulation entre chaque colonne et retour ligne entre chaque ligne

Voici deux les 2 fonctions qui font cette transformation :

Function PH(LaPlage As Range) As String '(ou Variant si texte de + de 256car)
' transforme une plage en tableau HTML
Dim l As Long, c As Long
PH = "<html>\" 'balises de début du code HTML et de début de table
For l = 1 To LaPlage.Rows.Count ' pour chaque ligne de la plage
PH = PH & \"----
\" ' balise de début de ligne
For c = 1 To LaPlage.Columns.Count 'pour chaque colonne de la ligne
' balise début de colonne + contenu de la cellule + balise fin de colonne
PH = PH & \"" & LaPlage.Cells(l, c) & ", \"
Next c
PH = PH & \"\" ' balise fin de ligne
Next l
PH = PH & "
</html>" ' balises de fin de table et de fin de code HTML
'MsgBox PH
End Function

Function PT(LaPlage As Range) As String
' transforme une plage en texte avec tabulations et retours ligne
Dim l As Long, c As Long
PT = ""
For l = 1 To LaPlage.Rows.Count
For c = 1 To LaPlage.Columns.Count
PT = PT & LaPlage.Cells(l, c)
If c < LaPlage.Columns.Count Then
' on ajoute une tabulation que si on n'est pas sur la dernière colonne
PT = PT & "%09" ' %09 est le code pour la tabulation (vbTab ne fonctionne pas ici)
End If
Next c
PT = PT & "%0A" ' %0A est le code pour le retour ligne (vbCrLf ne fonctionne pas ici)
Next l
'MsgBox PT
End Function

Pour utiliser ces fonction, il suffit de modifier l'appel à la procédure EnvoiMail comme suit :
EnvoiEmail Range("B1"), Range("B2"), PT(Range("B3:B13")), Range("B4")
ou
EnvoiEmail Range("B1"), Range("B2"), PH(Range("B3:B13")), Range("B4")
au lieu de
EnvoiEmail Range("B1"), Range("B2"), Range("B3"), Range("B4")

Merci de m'avoir soumis le problème, je vais modifier mon source publié pour intégrer cette possibilité

cordialement

JC
SUMACNAJ Messages postés 35 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 13 septembre 2007
12 juin 2007 à 08:51
Bonjour Nerim,

Merci de votre réponse, je vous fais parvenir par mail le résultat que j'avais obtenu.

Cordialement

CJ
castor750108 Messages postés 1 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 18:48
Bonjour,

C'est exactement la fonctionalité que je cherchais (en Excel 2002 SP3 et THUNDERBIRD 1.5).

Mis en oeuvre et paramétré en 2h maximum.

Merci
Rejoignez-nous