Rechercher : dans
Par :

Macro sous Excel envoi de fichier par mail

Dernière réponse le 23 déc 2007 à 21:12:38 domino40, le 22 déc 2007 à 21:16:29 
 Signaler ce message aux modérateurs

Bonjour,

Rappel du 1er message

Je souhaite envoyer par mail un classeur sous exel en pièce jointe.
J'ai testécette macro:

Sub EnvoiMail()
Workbooks("mon fichier").SendMail Recipients:="mondestinataire@FAI.fr", _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
End Sub

Est possible qu'une macro puisse pomper l'adresse de mon destinataire dans une cellule de mon classeur actif, car dans cette macro, le destinataire est en dur sur la macro.

Merci d'avance

Configuratio



Merci pour votre réponse efficace et rapide.

Ca marche c'est génial quand j'utilise

ActiveWorkbook.SendMail Recipients:=range("A1").value, _

Mais quand j'utilise

Workbooks("chemin d'un autre fichier qui en réalité le même fichier mais qui a été enregistré sous un autre nom").SendMail Recipients:="adresseEmail", _

Lorsque j'exécute la macro, j'ai un message d'erreur : L'indice n'appartien pas à la sélection.

Merci d'avance pour votre réponse.

Cordialement,
Domino40

Configuration: Windows 2003
Firefox 2.0.0.11

Meilleures réponses pour « Macro sous Excel envoi de fichier par mail » dans :
[Outlook/ThunderBird/Incredimail] Envoi/Réception de mail VoirVous avez des problèmes d'envoi ou de réception de mail dans votre client de messagerie ? Cet article va vous aider à diagnostiquer le problème. 1. Introduction à la messagerie 2. Problèmes d'envoi de mail 3. Problèmes de réception de...
Exécuter une macro VoirExécuter une macro Excel et Calc proposent plusieurs façons d’exécuter une macro : en la sélectionnant dans une liste, dans la boîte de dialogue Macro ; par un raccourci clavier ; en l’attachant à un bouton de la barre d’outils ; ...

1

gbinforme, le 22 déc 2007 à 21:37:10

Bonjour

ActiveWorkbook.SendMail Recipients:=range("A1").value, _

Cela n'envoie que le classeur courant effectivement.
Si tu veux envoyer un autre classeur avec des données du classeur courant ou du classeur à envoyer

Workbooks("fichierX").SendMail Recipients:=Workbooks("fichierX").Worksheets("Ma_feuille").range("A1").value,

ou

Workbooks("fichierX").SendMail Recipients:=ActiveWorkbook.range("A1").value,

toujours zen

Répondre à gbinforme

2

domino40, le 23 déc 2007 à 11:30:36

Bonjour,

Encore merci pour votre réactivité.

Mais décidément cette macro résiste !

Si je la passe en ActiveWorkbook --> Elle passe impec.

Mais si je lui donne le chemin de mon fichier BT.xls voir macro si dessous :

Workbooks("F:\Epave\BT.xls").SendMail Recipients:=ActiveWorkbook.Range("E52").Value, _
Subject:=Range("E53").Value, _
ReturnReceipt:=True

Si j'ai bien saisi :

--> BT.xls est mon fichier à envoyer
--> E52 est la cellule contenant l'adresse E mail, mais de mon fichier ouvert (qui n'est donc pas le même que BT.xls)
--> E53 est la cellue contenant l'objet du message


J’ai le message d’erreur suivant :

Erreur d’exécution 438

Propriété ou méthode non gérée par cet objet


Très cordialement,

Domino40

Répondre à domino40

3

gbinforme, le 23 déc 2007 à 18:40:38

Bonjour

Il faut que le classeur envoyé soit ouvert avec cette syntaxe et donc tu n'as pas besoin du chemin complet.
d'autre par le range fait partie de la feuille et non du classeur.
essayes ceci qui devrait fonctionner.

Workbooks("BT.xls").SendMail Recipients:=ActiveSheet.Range("E52").Value, _
Subject:=ActiveSheet.Range("E53").Value, _
ReturnReceipt:=True


toujours zen

Répondre à gbinforme

4

domino40, le 23 déc 2007 à 19:54:48

Bonsoir,

Je ne sait pas comment vous remercier tant sur votre rapidité que votre efficacité.
ça marche s'est génial !

Quand on aime on ne compte plus

Y aurait il un petit bonus ?

Si je veux envoyer d'un coup à plusieurs adresse E mail

Faut il que je duplique la macro, ou est il possible d'ajouter d'autres cellules contenant un adresse e mail ou puis je mettre plusieurs adresses danas la même cellule et a quel format ?

Très cordialement,

Domino40

Répondre à domino40

5

 gbinforme, le 23 déc 2007 à 21:12:38

Bonjour

En fait, je crois que le plus simple c'est d'avoir plusieurs cellules adresse rassemblées dans une "array" et tu peux en mettre d'autres, séparées par la virgule à l'intérieur des parenthéses.

Workbooks("bt.xls").SendMail _
Recipients:=Array(ActiveSheet.Range("E52").Value, _
            ActiveSheet.Range("F52").Value), _
Subject:=ActiveSheet.Range("E53").Value, _
ReturnReceipt:=True


toujours zen

Répondre à gbinforme