Envoie 1 feuille spécifique excel vers messag [Résolu/Fermé]

Signaler
-
 Lola1511 -
Bonjour,
Dans un dossier excel j'ai crée 3 FEUILLES, 1 feuille SAISIE, 1 ARTICLES, 1 FACTURE , est-ce possible d'envoyer ma feuille FACTURE dans ma boite de messagerie.
j'ai un lien hyper-texte qui me renvoie sur cette messagerie, mon problème est d'intégrer ma feuille FACTURE en tant que pièce jointe.
je sais qu'il y a des personnes + intelligentes que moi car je cherche et ne trouve pas.
En remerçiant à l'avance les bonnes âmes qui me rendront ce service

14 réponses

Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Salut,

Avec quelle messagerie travailles tu, Outlook, outlook express ...
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
re,

ce n'est pas un problème, si par exemple l'adresse mail figure dans la feuille à envoyer exemple cellule B5

dans le code ligne Dest tu fais référence à la cellule B5

Sub Envoi()
Dim Dest As String, Sujet As String
Sheets("FACTURE").Select 'Saisir le nom exact la feuille
ActiveSheet.Copy 'crée une copie de la feuille active
Dest = Range("B5").Value 'Saisir l'adresse mail
Sujet = "Envoi copie bon de commande"
ActiveWorkbook.SendMail Dest, Sujet, True
Application.DisplayAlerts = False
ActiveWorkbook.Close 'ferme la copie de la feuille active
Application.DisplayAlerts = True
End Sub
Salutation à toi,
ça fonctionne impect, mais encore un prob pour moi, je te joint la macro de mon dossier
' imprimenregestrefface Macro, bref, ce que je soufaiterais c'est que ça m'enregistre la feuille DEVIS dans mon dossier DEVIS en format xls modifiable et l'envoyer au client en format PDF
'

'
nomfich = Worksheets("DEVIS").[F10]
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\User\Bureau\DEVIS\" & nomfich & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Dim Dest As String, Sujet As String
Sheets("DEVIS").Select
ActiveSheet.Copy
Dest = Range("B19").Value
Sujet = "Envoi copie devis"
ActiveWorkbook.SendMail Dest, Sujet, True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Dim Numfacture As Long
Numfacture = Sheets(1).Range("F10").Value
Numfacture = Numfacture + 1: [F10] = [F10] + 1
Sheets(1).Range("F10").Value = Numfacture
Range("B20").Select
End Sub
Si tu peut me résoudre cà , je t'en suis reconnaissant je débute en macro et j'avoue que je suis un peu perdu.
merci d'avance
bonjour,
au secours, pour cette macro!
Merci d'avance si tu peut me résoudre ce prob
Messages postés
2940
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 293
Bonjour,

Sous Excel 2007, il y a une option (bouton Office en haut à gauche ; envoyer...qui permet directement d'envoyer le classeur en pièce jointe dans un message électronique.
Seul problème, je pense que c'est le classeur entier qui est envoyé et non pas une feuille précise.
ton problème devrait pouvoir être résolu en écrivant une macro.

A+

pépé

P.S : la notion d'intelligence n'a rien à voir avec la résolution de problèmes. On ne peut pas tout connaître. L'intelligence, c'est de l'admettre et de continuer à apprendre, d'être curieux et surtout de ne pas faire de complexes.
merci pour ta réponse, mais elle ne convient pas à ce que je voudrais obtenir
Salutations
bonjour je suis sfr et ma messagerie par défaut est INCREDIMAIL
Si tu a ce qu'il me faut , je suis preneur
salutations
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Pas de problème je reviens dès que possible
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Peux tu me confirmer ta version Excel s'il te plait
Bonjour, merci de me répondre
ma version Excel 2007,
Si je peux abuser encore de tes connaissances, j'aurais une autre question si possibilitée
avec une zone de liste déroulante crée dans feuille PRODUITS je désiserais pour quand je clique sur un produit, le nom de ce produit devra se placer sur la 1ere cellule vide colonne A Feuille DEVIS
Salutations
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Je t'ai écrit une macro du tonnerre, ton classeur se compose de combien de feuille et quelle feuille veux tu envoyer par mail (son nom ou son n° dans le classeur)

veux tu mettre un message d'accompagnement dans ton mail si oui lequel et sur combien de ligne

Veux tu également mettre la date et l'heure de l'envoi dans le titre ou le texte d'accompagnement

Quel est ton fournisseur d'accès

Pour ta dernière question je t'écris un bout de code

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
bonsoir, ta macro fonctionne très bien et t'en remercie, le seul prob que j'ai en fait c'est que je voudrais que le client recoive la feuille DEVIS en PDF et conserver en fichier Excel la feuille DEVIS
Merci de ta patience avec moi.
PS sinon je te fais parvenir le fichier
Daniel
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Justement le problème est la transmission en PDF.
transmettre un fichier ou une partie de fichier ne pose aucun problème.

Transformer un fichier ou une partie de fichier en PDF ne pose aucun problème.

Par contre transformer un fichier en PDF et l'envoyer transforme l'extension en .DAT et ce fichier ne s'ouvre plus à l'arrivée ou il faut l'envoyer manuellement.

Au choix on reste sur le principe de l'envoi de fichier Excel et tout automatique,

ou on demande à une macro d'enregistrer le fichier en .PDF et on l'envoi le fichier manuellement
ok, merci de me répondre, c'est aussi un peu ce que pensais vu tous les essais que j'avais fais sans ce résultat,
tu purras regarder pour la macro de zone de liste déroulante, si tu a encore un peu de temps à me consacrer, cela m'éviteras de faire beaucoup de bouton
merci encore de ta patience envers moi, je suis pas trop dans le coup encore
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 512
Salut Mike, BABAR07,
Pour la création et l'envoi d'un pdf à partir d'excel grâce à une messagerie Outlook, un code VBA à adapter ici...
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Pour copier à la suite colonne A feuille DEVIS les données sélectionnées feuille PRODUITS ne sachant dans quelle cellule se trouve la liste déroulante j'ai pris la cellule B2 qu'il faudra modifier à 2 endroits dans le code

colle ce code dans un module et associe le à un bouton

Sub Transfert_Données()
MyValue = MsgBox("Voulez-vous copier cette valeur sur la feuille DEVIS ?", _
vbYesNo + vbCritical + vbDefaultButton1, "Vous avez sélectionné " & [B2])
If MyValue = vbYes Then
Sheets("DEVIS").Select
[A65536].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("PRODUITS").Select
[B2].ClearContents
Else
Application.CutCopyMode = False
Exit Sub
End If
End Sub

pour automatiser la copie dès que tu clic sur un produit de la liste déroulante, colle ce code dans les propriétés de la feuille (clic droit sur l'onglet/Visualiser le code), la aussi il faudra changer B2 par la cellule de ta liste déroulante

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Selection, Range("B2")) Is Nothing Then
If Target = "" Then Exit Sub
Target.Copy
Call Transfert_Données
End If
End Sub


Pour éviter le transfert sur un clic accidentel j'ai mis dans le code une msgbox avec 2 boutons pour confirmer le transfert ou le refuser, et le produit sélectionné est rappelé dans le titre de la msgbox
Bonjour, je sais j'use de ta patience et de ton savoir,mais voila je vais faire simple, donc ce qu'il me faudrais c'est une macro qui m'enregistre la feuille active DEVIS-FACTURE en format PDF dans le dossier DEVIS sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13) et cette même feuille active en format xls (modifiable ) dans le dossier FACTURE sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13), si il y a possibilitée
En te remerciant à l'avance,
Cordialement
Messages postés
52666
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 novembre 2020
14 599
Bonjour BABAR07.

Je fais abstraction des 16 messages qui précèdent, et je réponds directement à ta question initiale "Dans un dossier excel j'ai crée ... 1 feuille SAISIE, 1 ARTICLES, 1 FACTURE , est-ce possible d'envoyer ma feuille FACTURE dans ma boite de messagerie. j'ai un lien hyper-texte qui me renvoie sur cette messagerie, mon problème est d'intégrer ma feuille FACTURE en tant que pièce jointe." :

Clic-droit sur l'onglet "FACTURE" / Déplacer ou copier / Dans le classeur "nouveau classeur" / Créer une copie / OK
Puis enregistrer ce classeur et l'envoyer en pièce jointe.

C'est bien plus simple ! Cordialement.
Aboslument simple et parfait. Même 5 ans après ;-)
Merci
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Salut le fil,

manuellement il n'y a aucun problème,

Avec un code VBA, la création d'un fichier PDF est très simple,

l'envoi Avec Outlook ne pose aucun problème, le problème est que lorsque on utilise le pack Office 2007 Outlook ne fait plus parti du pack Famille et l'acquérir ou acheter le pack petite entreprise double la mise.

Le problème rencontré est le pilotage d'Incredimail vu que le demandeur l'utilise
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 512
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Salut le fil,

Après plusieurs codes, voila le bébé, la conversion des fichier Excel en PDF fonctionne à partir des versions Excel 2007. dans le fichier il faut avoir une feuille nommée Devis (attention de respecter les majuscules et minuscules).
la feuille Devis est créée en extension PDF, Envoyée et supprimée.
coller ce code dans un module et l'associer à un bouton ou verra plus tard de l'associer à un activeX
renseigner cette ligne du code en remplaçant les xxxx par l'adresse mail du destinataire
objMessage.To = "xxx.xxxxx@free.fr"
et éventuellement objMessage.From = "adresse mail expéditeur" ou simplement un "Nom" entre guillemet
mettre à jour le SMTP qui est celui de votre fournisseur d'accès


Sub Envoi_Feuil_Excel_en_PDF()
Dim messageHTML
On Error GoTo errorHandler
'on cré le fichier PDFdans le même dossier que le fichier source
Sheets("Devis").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & "Devis.pdf"

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Sujet du Message"
objMessage.From = "xxx.xxxxxx@free.fr" 'adresse mail de l'expéditeur n'est pas obligatoire
objMessage.To = "xxx.xxxxx@free.fr" 'Email du destinataire doit-être correct ici
objMessage.TextBody = "Bonjour," & vbCrLf & "Veuillez trouver en piéce jointe votre facture" & vbCrLf & "en votre aimable réglement"
piece_jointe = ActiveWorkbook.Path & "\" & "Devis.pdf"
''piece_jointe = "C:\Documents and Settings\Les Lagouanère\Bureau\0917_001.pdf" 'chemin du fichier à envoyer en piéce-jointe
'piece_bis = "C:\Documents and Settings\Les Lagouanère\Bureau\Cligno.xls" ' Si on souhaite envoyer plusieurs pièces les déclarer
messageHTML = "Ceci est un message en HTML"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update

objMessage.AddAttachment (piece_jointe) 'On ajoute la piéce jointe, il est possible d'envoyer plusieurs pièces
'objMessage.AddAttachment (piece_bis) 'dans ce cas on ajoute un objMessage.AddAttachement () par pièce
objMessage.Send
MsgBox "Le mail a été bien envoyé !"
'la feuille PDF créée est est supprimée après l'envoi
Kill ActiveWorkbook.Path & "\" & "Devis.pdf"
'si erreur on sort de la procédure
Exit Sub
errorHandler:
'description de l'erreur survenue
MsgBox Err.Description
End Sub


n'hésitez pas à faire remonter vos observations pour fignoler le code
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour, je sais j'use de ta patience et de ton savoir,mais voila je vais faire simple, donc ce qu'il me faudrais c'est une macro qui m'enregistre la feuille active DEVIS-FACTURE en format PDF dans le dossier DEVIS sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13) et cette même feuille active en format xls (modifiable ) dans le dossier FACTURE sur le bureau en la nommant avec le n° du devis cellule B11 et le nom du client cellule C13), si il y a possibilitée
En te remerciant à l'avance,
Cordialement
Messages postés
4
Date d'inscription
samedi 20 février 2016
Statut
Membre
Dernière intervention
24 février 2016

Bonjour Mike,
Je me suis permis d'utiliser ton cote pour des commande de livraison de mazout
Mais j'ai un petit souci, je voudrait garder le fichier PDF comme preuve de commande,
J'ai supprimé la ligne "Kill............, le fichier reste bien mais quand je lance une nouvelle commande le fichier PDF est remplacé par le fichier PDF de la nouvelle commande.
Viens à mon aide hihi
D'avance je t'en remercie
PS : Je suis novice
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345 >
Messages postés
4
Date d'inscription
samedi 20 février 2016
Statut
Membre
Dernière intervention
24 février 2016

Bonjour,
pas de problème pour le coup de main, mais en fin de semaine, ski oblige
a+
Messages postés
4
Date d'inscription
samedi 20 février 2016
Statut
Membre
Dernière intervention
24 février 2016
>
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020

Ok, pas de problème encore grand merci à toi
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

Excuse, depuis quelques jours, je suis en pointiilé sur le forum, ski oblige.

1/ combien de feuille as tu dans ton fichier !

2/ donnes moi leurs noms exact !

Le code que je t'ai posté, envoi en format PDF la feuille nommée Devis sans passer par une messagerie (Outlook, Incrédimail etc ... ce qui permet de l'utiliser depuis n'importe quel ordinateur connexté au réseau.

3/ le code actuel supprimait le fichier créé après envoi, peut être souhaites tu conserver cette copie !

Je modifie le code pour nommer l'envoi en fonction des cellules B11 et C13 sans problème

répond aux trois questions et je te fais ça
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Puisque tu fais référence à deux cellules pour le numéro et le nom du fichier PDF, il est possible et même je te conseille de faire référence à une cellule contenant l'adresse mail du destinataire ainsi que pour celle ou l'intitulé de l'expéditeur que tu es.
Peut être pourrais tu me confier ton fichier que je vois sa structure soit dans un post ou message privé
Messages postés
17297
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
30 octobre 2020
4 345
Re,

En supposant que la feuille à envoyer se nomme bien FACTURE
Coller le code dans un module et l'associer à un bouton
renplacer les xxx.xxxxxxxx@xxx.xx par une adresse mail valide

Sub Envoi ()
Dim Dest As String, Sujet As String
Sheets("FACTURE").Select 'Saisir le nom exact la feuille
ActiveSheet.Copy 'crée une copie de la feuille active
Dest = "xxx.xxxxxxxx@xxx.xx" 'Saisir l'adresse mail
Sujet = "Envoi copie bon de commande"
ActiveWorkbook.SendMail Dest, Sujet, True
Application.DisplayAlerts = False
ActiveWorkbook.Close 'ferme la copie de la feuille active
Application.DisplayAlerts = True
End Sub
je te remercie de cette macro elle me convient parfaitement, mais il faudrait que l'adresse mail puisse se mettre en auto car j'ai plusieurs factures dans lesquelles sont incorporées des adresse mail différentes donc qui ne vont pas toutes au même client.
Exp : client x mail x, client w mail w, il faudrait que cela puisse s'incorporer dans Dest =
en espérant me faire comprendre, merci d'avance, avoir essayé, mais avoir pas pu.
Bonjour,
Je me suis permis d'utiliser votre cote cela fonctionne impecable pour moi mais je voudrai mettre un corp dans mon mail
ex: Bonjour, ci-joint commande bien à vous
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 512 > lebeaujo
Bonjour,

Ce n'est pas possible avec la Méthode SendMail.
Celle-ci n'accepte que trois paramètres :
> le(s) destinataire(s),
> l'objet sujet du message,
> l'accusé de réception.

Pour faire ce que vous souhaitez, il faut utiliser une autre méthode d'envoi.
Mike a réalisé un très bon exemple plus bas au message 23 d'envoi de mail via CDO.
omail.body = pour rajouter un corps dans votre mail