Macro sous Excel envoi de fichier par mail

Résolu/Fermé
domino40 - 22 déc. 2007 à 21:16
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 23 déc. 2007 à 21:12
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
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 déc. 2007 à 18:40
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
3
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 déc. 2007 à 21:12
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
1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 déc. 2007 à 21:37
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,
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0