Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 15h25   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Par défaut Envoie fichier par email

Bonjour,

j'utilise actuellement une macro me permettant d'afficher une partie de mon tableau dans un document word.

Est il possible qu'automatiquement, ce document word s'ajoute en PJ d'un email avec une adresse et un objet prédéfini?

la macro est la suivante?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Excel_Word()
 
Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document
 
'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Open("C:\Users\utilisateur\contrat.docx")
 
'Rendre Word visible
oWdApp.Visible = True
 
'Copier une plage depuis Excel
ActiveSheet.Range("A10:X38").Copy
 
'Coller la plage dans Word
oWdApp.Selection.Paste
 
'Annuler le mode couper/copier
Application.CutCopyMode = False
 
End Sub
Merci pour votre aide.
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h45   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Essaie :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub Excel_Word()
 
Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document
 
'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Open("C:\Users\Daniel\Documents\Donnees\Daniel\mpfe\contrat.docx")
 
'Rendre Word visible
oWdApp.Visible = True
 
'Copier une plage depuis Excel
ActiveSheet.Range("A10:X38").Copy
 
'Coller la plage dans Word
oWdApp.Selection.Paste
 
'Annuler le mode couper/copier
Application.CutCopyMode = False
 
'Enregistrer le document
oWdDoc.Save
oWdDoc.Close
    Set OlApp = CreateObject("Outlook.application")
    Set m = OlApp.CreateItem(olMailItem)
    With m
        .Subject = "Subject"
        .Attachments.Add "C:\Users\utilisateur\contrat.docx"
        .Recipients.Add "test@test.com"
        .Send
    End With
Set oWdDoc = Nothing
Set oWdApp = Nothing
Set m = Nothing
Set OlApp = Nothing
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/09/2011, 16h24   #3
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Merci Daniel pour ta réactivité, cela fonctionne parfaitement

Pour info : est il possible de valider le mail avant de l'envoyer?
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 16h32   #4
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Oui,

Mets :

en ligne 33 au lieu de :

__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 16h36   #5
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Super !

Super, vraiment un grand merci !!!

J'ai juste une dernière question :

Sais-tu comment rajouter du texte dans le corp de message.

.Textbody = "test" ==> ne fonctionne pas.

A+
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 17h13   #6
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 17h49   #7
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut heu...!!!

bonjour la macro de daniel est tres bien, ca tombee bien que tu a outlook mais si tu utilise ton fichier ou outlook n'est pas configuré la la cata!!

tu a la solution avec "CDO" aussi en utilisant le smtp de ton "FAI"
cette solution marche dans tout les cas il suffit de metre le bon serveur de ton fournisseur

tu a çà dans les contributions

le lien est dans ma signature


au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/09/2011, 11h29   #8
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
@Patrick : Visiblement je n'ai pas de problème avec Outlook. Quel pourrait être le soucis?

@Daniel : encore question : La macro copie une zone Excel de toutes les feuilles précédentes or je veux uniquement la zone de la feuille sur laquelle on active la macro. Je pensais que Activesheet.Range permettait d’éviter cela

Encore merci pour l'aide.

Finalement je me rends compte que la macro de Daniel enregistre le doc Word, donc des que je relance la macro cela superpose les infos.

Est il possible de mettre en PJ uniquement le word "temporaire" , j'aimerai que mon doc reste vierge par la suite(ne pas l'enregistrer)
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h03   #9
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut re

bonjour

il n'y a pas de problème avec outlook si ce n'est que si tu utilise ton fichier

sur plusieurs or dis et que sur l'un d'entre eux n'a pas outlook ou si outlook n'est pas configuré et ben c'est le mur
tandis que si tu regarde mon fichier mailler dans les contributions et il y en a d'autre aussi ,ce fichier utilise la méthode "CDO" et donc le serveur smtp du fournisseur d'accès sur le quel l'ordi est connecté
dans mon fichier on sélectionne le fournisseur, le destinataire,expéditeur,la pièce jointe, et cela sans sortir du fichier

tu pourrais adapter la macro envoi mail qui ce trouve dans son propre module
a mon fichier

le lien est dans ma signature

voila

au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h23   #10
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Que tu utilises ma macro ou plus généralement CDO, tu ne peux envoyer qu'un fichier enregistré. Il faut que tu l'enregistres sous un autre nom qui te servira pour l'envoi.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h15.


 
 
 
 
Partenaires

Hébergement Web