Envoyer seulement 1 feuille !
RésoluJ'ai cherché sur bcp de discussions la réponse mais je ne l'ai jamais trouvée, pouvez vous m'expliquer comment dois-je faire pour n'envoyer qu'une feuille ou deux de mon classeur avec cette macro :
Sub EnvoiMail()
Workbooks("Classeur2.1").SendMail Recipients:=[A1].Value, _
Subject:="envoie dossier", _
ReturnReceipt:=True
End Sub
Il doit y avoir une écriture spécifique pour mentionner seulement une feuillle au lieu du "classeur2.1"
Merci à tous
27 réponses
La problématique centrale porte sur comment envoyer uniquement une feuille d'un classeur Excel via une macro, sans joindre l'ensemble du classeur et avec la possibilité d'inclure le destinataire et le sujet dynamiquement. Parmi les solutions, il est suggéré de copier la feuille active dans un nouveau classeur puis d'envoyer ce classeur via SendMail, ou d'adresser une macro qui cible explicitement une feuille nommée. Des exemples montrent aussi l'utilisation d ActiveSheet.Copy avant SendMail pour attacher uniquement la feuille, et des variantes où la pièce jointe et le destinataire sont définis dynamiquement. Certaines réponses évoquent aussi des limites comme Excel générant malgré tout un classeur lors de l'envoi et des ajustements nécessaires pour adresser les adresses successives dans un menu déroulant.
-
RE,
Je suis pas mal pris en ce moment, récupéres le fichier, j'ai agrandi deux de tes boutons pour les assocer à deux codes Envoi_1 et Envoi_mail
dans chaque code tu trouveras une série de x
"xxxx.xxxxxx@xxxx.xxx"
remplace les par une adresse mail valide entre guillemets
http://cjoint.com/?1dzthVauUjW
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir. -
Merci pour le lien je vais regarder dis moi je fais juste une parenthèse comment je fais sur cette macro pour supprimer l'ajout d'une pièce joite et ajouter un corps de message ?
Sub Macro1()
Workbooks("Classeur3.1").SendMail Recipients:="", _
Subject:="Rappel ", _
ReturnReceipt:=True
End Sub
merci -
Re,
Je ne sais pas si c'est la fin de semaine, mais je ne vois pas du tout ce que tu veux dire ! sinon je peux te l'envoyer sur ton mail si tu veux (donne moi ton adresse).
Dsl-
-
https://www.cjoint.com/?0dzlhDaSYn voila je crois que c'est bon je t'ai mit le classeur
Mince il faut Java script je peux pas l'activer... je peux te l'envoyer par mail ? -
-
-
Re,
Tu clic sur ce lien, Parcourir pour sélectionner le fichier à envoyer/Créer le lien et colle le lien généré dans un post -
Comment fait on pour envoyer un document dans ce forum ?
-
Re,
tu peux nous poster ton fichier sans notes confidentielles que l'on voit sa structure, mais si on envoi une feuille Excel en pièce jointe, Excel génère automatiquement un classeur avec une ou plusieurs feuilles, là n'est pas le problème.
Par contre si tu veux que le classeur se nomme Feuille 2 ou autrement, c'est possible mais le code sera différent et plus complexe
-
Oui voilà c'est ça par contre je souhaite que lorsque la fenetre s'ouvre il y a déjà la feuille 2 de mon classeure en pièce jointe et seulrment la feuille2 !
-
Re,
Si je comprends bien, tu veux que la fenêtre d'envoi s'ouvre sans destinataire
Private Sub CommandButton1_Click()
Sheets("Feuil2").Copy
ActiveWorkbook.SendMail Recipients:="", _
Subject:="envoie dossier", _
ReturnReceipt:=True
ActiveWorkbook.Close False
Application.DisplayAlerts = False
[F4].ClearContents
End Sub
-
re, je viens de voir ton document ça ressemble fortement à ce que je te demande et je t'en remercie.
J'ai du changer un peu mon idée de base ( la simplifier), désormais j'appuye sur le bouton "envoyer" situé feuille1.
Ensuite la fenetre outlook message s'ouvre (sans destinataire) avec en pièce jointe la feuille 2 du classeur.
Tu as compris ? -
Re,
sur le lien ci dessous deux exemples feuille1 et 3, le code envoi la feuille 2 soit depuis le feuille 1 ou 3 mais peut être envoyé directement depuis la feuille 2 en modifiant le code
http://cjoint.com/?1dyktvFrLZn
-
tu as raison, je débute dans la macro je manque de précision.
Oublions l'adresse mail ! j'ai une maco sur la feuille 1 qui créer un message et insère une pièce jointe. Idéalement cette pièce jointe est la feuille 2 de mon classeur cependant je n'arrive pas à envoyer que la feuille 2, donc j'envoie tout le classeur à chaque fois.
C'est plus compéhensible ?? -
Re,
Avec le VBA, il faut être très précis,
le bouton de commande macro est sur quelle feuille (donne le numéro ou le nom)
l'adresse mail en F4 est sur quelle feuille (donne le numéro ou le nom) (éventuellement, tu peux nommer la plage ex. Adress)
pour envoyer la feuille 2 ou tout autre feuille n'est pas un problème
-
Merci, tu as l'air d'avoir trouvé la solution, mais j'aimerai comprendre la macro,
Private Sub CommandButton1_Click()
ActiveSheet.Copy
ActiveWorkbook.SendMail Recipients:=[F4].Value, _
Subject:="envoie dossier", _
ReturnReceipt:=True
ActiveWorkbook.Close False
Application.DisplayAlerts = False
[F4].ClearContents
End Sub
Parce ce que dans ton exemple tu envoie une valeur de la feuille1 mais moi je cherche envoie une toute la feuill2 (puisque j'aurai une grande plage de valeur) -
Re,
Vite fait, deux exemples feuille 1 et 2
http://cjoint.com/?1dxwV7vYMGH
-
merci bcp
-
Re,
je suis pris pour l'après midi, dès ce soir je te fais un modéle -
non ca ne marche, le mail est toujours envoyé au premier contact ( [f4] ) de la formule.
tu comprends mon problème ?
Sub EnvoiMail()
Workbooks("Classeur2.1").SendMail Recipients:=[F4].Value, _
Subject:="envoie dossier", _
ReturnReceipt:=True
End Sub
voila ma macro -
Re,
Le code à planté parce qu'une erreur s'est produite causé certainement par un erreur lors de la modification. pour réactiver le code deux solutions
redémarre Excel
ou
dans le visual basic editor fais
Exécution/Réinitialiser
si ton code plante poste ta macro ou le fichier sinon je te ferai un modéle -
Bonjour j'ai modidié ma macro en rejoutant ce que tu m'a mis mais un message d'erreur s'affiche " impossible d'executer le code en mode arret "
-
Merci, je suis plus à mon bureau j'essayerai demain je te remercie
- 1
- 2