Re : VBA: Envoyer un email par Gmail avec feuilles en pièces jointes
Salut JNP,
Mea Culpa je n'avais pas vu la première partie de ce message!
Cela donne:
Code:
Sub EnvoyerMail()
Dim i As Integer
Dim NomDeLaFeuille As String
Dim NomDesClasseurs(1 To 11)
Dim ZonePJ As Range
Set ZonePJ = Range("C18:D28")
For i = 18 To 28
If Not IsEmpty(Range("C" & i)) And Range("D" & i) = "OK" Then
NomDeLaFeuille = Range("C" & i)
NomDesClasseurs(i - 15 + 1) = "C:\Documents and Settings\user\Mes documents\" & NomDeLaFeuille & ".xls"
ThisWorkbook.Sheets(NomDeLaFeuille).Copy
ActiveWorkbook.SaveAs ("C:\Documents and Settings\user\Mes documents\" & NomDeLaFeuille)
ActiveWorkbook.Close
End If
Next i
Call SendMailCDO(NomDesClasseurs)
For i = 1 To 11
If NomDesClasseurs(i) <> "" Then Kill NomDesClasseurs(i)
Next
ZonePJ.ClearContents
Code:
End Sub
Sub SendMailCDO()
Dim D As String
Dim CC As String
Dim E As String
Dim S As String
Dim T As String
D = Range("C33").Value
CC = Range("C35").Value
E = Range("C15").Value
S = Range("C3").Value
T = Range("C6").Value & Chr(10) & Chr(10) & Range("C9").Value
Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = D
.CC = CC
.From = E
.Subject = S
.TextBody = T
For i = 1 To 11
If NomDesClasseurs(i) <> "" Then .AddAttachment NomDesClasseurs(i)
Next
.send
End With
success = MsgBox(nbmessages & " envoyés avec succès !", vbInformation)
Exit Sub
SMTPSendMail_Err:
'Gestion des erreurs
tmp = MsgBox("Erreur lors de l'envoi de votre message." & Chr(10) & "Détails : " & Err.Description, vbCritical)
End Sub
J'ai un message d'erreur:
Erreur de compilation:
Nombre d'arguments incorrect ou affectation de propriété incorrect
Re : VBA: Envoyer un email par Gmail avec feuilles en pièces jointes
Re,
Le ventre plein on voit mieux ce que l'on a oublié!
Voici le fichier final !
Ca serait bien de faire évoluer ce fichier. Il y a plein de choses qui peuvent être rajoutées. Comme par exemple la recherche en pièce jointe des feuilles non pas uniquement du classeur actif mais de n'importe quel classeur qu'on aurait sélectionné préalablement.
Ou encore envoyer aussi des classeurs.
Ou encore la possibilité de choisir la messagerie à employer.
Etc...
Actuellement: - Possibilité d'envoyer à plusieurs des mail à plusieurs destinataires avec CC
- Possibilité d'envoyer plusieurs feuilles du classeur actif
- Etc...
Un grand merci à JNP et Hasco sans qui.. bah j'aurais pas pu le faire!
Très prochainement capable de partager avec vous une méthode afin d'envoyer en pièce jointe les feuilles sélectionnées, j'aurai besoin de savoir quelle est la méthode afin de supprimer un classeur.
J'utilise:
Code:
Workbooks("C:\Documents and Settings\user\Mes documents\" & NomDeLaFeuille & ".xls")[COLOR="Red"].Erase[/COLOR]
(NomDeLaFeuille est une variable défini)
Ce que je souhaite, c'est sélectionner un classeur dans mon répertoire "Mes documents" et le supprimer. J'ai testé .Erase .Delete, ça n'existe pas. Ou alors je l'utilise mal. Peut être faut t'il ouvrir le classeur d'abord?