> Tous les forums > Forum Bureautique
 Envoyer un fichier par mail en pièce jointeSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Yaloo
  Posté le 18/01/2011 @ 22:47 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

Je cherche à envoyer un fichier par mail en pièce jointe, j'ai récupéré un code VBA, mais ça bloque au niveau du fichier en pièce jointe lorsque je veux envoyer mon fchier, voici le code:

Sub EnvoiMail()
Répertoire = "C:"
If Dir(Répertoire, vbDirectory) = "" Then MkDir Répertoire
ThisWorkbook.SaveCopyAs Répertoire & "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & _
Format(Now, " yyyy-mm-dd") & ".xls"

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")
With Cdo_Message
.To = "essai@hotmail.fr"
.From = "essai1@hotmail.fr"
.Subject = "Sujet"
.TextBody = "corp du message"
.AddAttachment ("C:\largeur.jpg")
.Send
End With
Set Cdo_Message = Nothing
End Sub

Lorsque je mets un fichier déjà enregistré ça fonctionne (comme "c:\largeur.jpg") mais si j'essaie de mettre activeworkbook ou thisworkbook ça plante.

Si vous avez des idées je suis preneur.

Merci d'avance

Yaloo

Publicité
galopin01
 Posté le 19/01/2011 à 04:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

AddAttachment fonctionne avec un fichier joint et une adresse de fichier enregistré.

...quelque chose comme ça (non testé) :

Sub EnvoiMail()
Dim Cdo_Message As Object, Z$

Z = ThisWorkbook.Name
Z = "C:\" & Left(Z, Len(Z) - 4) & Format(Now, " yyyy-mm-dd") & ".xls"
ThisWorkbook.SaveCopyAs Z

Set Cdo_Message = CreateObject("CDO.Message")
With Cdo_Message
.To = "essai@hotmail.fr"
.From = "essai1@hotmail.fr"
.Subject = "Sujet"
.TextBody = "corp du message"
.AddAttachment Z
.Send
End With
Set Cdo_Message = Nothing

Kill Z '(éventuellement)
End Sub

A+

Yaloo
 Posté le 19/01/2011 à 09:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut Galopin,

J'avais aussi essayé comme ça, en déclarant une variable, mais je 'y suis mal pris car cela ne fonctionnait pas.

Merci pour le code modifié ça marche très bien, mais pourquoi mets-tu $ ? Ca sert à quoi ?

Yaloo

galopin01
 Posté le 19/01/2011 à 14:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Le Galopin est est peu fainéant et quand il peut s'éviter du travail...

C'est l'équivalent de :

Dim Z as String

J'ai pris l'habitude d'utiliser la notation abrégée. Quand il y a de nombreuses variables, c'est quand même bien pratique.

A+

Yaloo
 Posté le 19/01/2011 à 15:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci du retour

Yaloo
 Posté le 20/01/2011 à 19:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Lors de mes essais, j'étais sous Office 2010, mais ce fichier est sur un PC avec Office 2003.

Ca plante sur .send

Message d'erreur : Erreur d'éxécution '-2147220960 (80040220)'

La valeur de configuration "SendUsing" est non valide.

Pourriez-vous m'aider ?

Yaloo

galopin01
 Posté le 20/01/2011 à 20:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

bonsoir,

Je ne peux pas dire je n'utilise pas CDO

A+

Yaloo
 Posté le 20/01/2011 à 21:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir Galopin,

As-tu une autre astuce pour envoyer un mail avec le fichier actif en pièce jointe ?

Moi non plus je n'utilisait pas CDO, avant de trouver ce code.

Par contre, c'est un fichier que je fais pour plusieurs personnes, qui n'ont pas forcément le même Office, ni le même FAI, ou qui ont une adresse hotmail. Donc il faudrait qqchose de simple à utiliser et "qui passe partout"

Si tu as une idée, n'hésite pas

A+

galopin01
 Posté le 20/01/2011 à 21:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Tu as Outlook ?

Yaloo
 Posté le 20/01/2011 à 21:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
oui
galopin01
 Posté le 21/01/2011 à 04:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Euh... Désolé je n'avais pas lu le :

Par contre, c'est un fichier que je fais pour plusieurs personnes, qui n'ont pas forcément le même Office, ni le même FAI, ou qui ont une adresse hotmail.

Donc il faudrait qqchose de simple à utiliser et "qui passe partout"

Je ne suis pas certain que ce soit faisable. Si tu lis un peu le nombre de questions sur les forums spécialisés qui concernent ce sujet tu te rendras très vite compte que chaque cas est un cas d'espèce...

Yaloo
 Posté le 21/01/2011 à 10:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Et bien oui, d'après ce que j'avais lu sur CDO, on pouvait envoyer des messages sans passer par Outlook ou bien envoyer avec une adresse gmail ou hotmail.

C'est pour ça que j'étais parti là-dessus, j'ai l'impression que mon problème viens du pc, car sur celui-ci, j'ai Office 2003 et 2007, aucun ne fonctionne. Sur un autre PC avec Office 2010, ça marche très bien.

Je vais fouiller davantage.

A+



Modifié par Yaloo le 21/01/2011 10:42
galopin01
 Posté le 21/01/2011 à 15:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

CDO me semble étroitement dépendant de la machine, avec des paramétrages parfois délicats...

ça me semble être une manivelle un peu désuète. La plupart ont opté pour le démarreur électrique !

Il reste que dans la plupart des cas les ceusses qui posent encore la question le font pour 1 programme et 1 machine pas pour un groupe de machines disparates...

Tout sur le sujet ici

+

Yaloo
 Posté le 21/01/2011 à 19:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bon, c'est super, avec le lien que tu m'as indiqué, j'ai pu m'en sortir.

Généralement je ne lis pas les fichiers ou les sites en anglais car j'y comprend rien, mais avec un bon traducteur, ton lien m'a largement dépanné.

A+

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Disque dur externe Western Digital Elements Desktop USB 3.0 18 To
299,72 € 400 € -25%
@Amazon Allemagne
Disque dur externe portable Seagate Ultra Touch 5 To USB C + 2 ans Service Rescue
153,37 € 179,99 € -15%
@Amazon
Ensemble clavier et souris ergonomique sans fil Amazon Basics
19,94 € 35 € -43%
@Amazon
PC portable Lenovo 15.6 pouces LOQ 15IAX9 (FHD IPS 144 Hz, Core i5-12450H, 24 Go RAM DDR5, SSD 512 Go, GeForce RTX 4060, sans OS)
799,99 € 1099 € -27%
@Amazon
Webcam UGREEN (Full HD, 2 micros antibruit, cache de confidentialité)
22,68 € 34,99 € -35%
@Amazon
Disque dur Seagate NAS IronWolf Pro 20 To + 3 ans Service Rescue
491,99 € 550 € -11%
@Amazon

Sujets relatifs
Fichier Winmail.dat lors de pièce jointe vers smartPhone
WORD 2010 ENVOYER EN TANT QUE PIECE JOINTE
Envoie Mail avec piece jointe ACCESS 2007
envoyer piece jointe lourde
Impossible envoi de piece jointe avec un mail
fichier excel en piece jointe dans un message
Envoyer un gros fichier Publisher par mail
Envoyer par mail un gros fichier
FICHIER PPS en pièce jointe dans OUTLOOK
[Outlook 2003] Envoyer en tant ke piece jointe
Plus de sujets relatifs à Envoyer un fichier par mail en pièce jointe
 > Tous les forums > Forum Bureautique