j'ai revu ton fichier, je commence à comprendre, il n'y a pas de pièces jointes car tu ramènes les valeurs dans le corps du message
dans ce cas ta fonction est fausse, il faut lui enlever ce qui fait référence à la pièce jointe
Public Sub Envoyer(psObjet As String, psCorps As String, psAdresse As String)
Dim ObjOutlook As Object
Dim objMail As Object
Set ObjOutlook = New Outlook.Application
'Set ObjOutlook = CreateObject("Outlook.Application")
Set objMail = ObjOutlook.CreateItem(olMailItem)
With objMail
.To = psAdresse ' le destinataire
.Subject = psObjet ' l'objet du mail
.Body = psCorps 'le corps du mail ..son contenu
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.Send
End With
'ObjOutlook.Quit
Set objMail = Nothing
Set ObjOutlook = Nothing
End Sub
J'espère que le reste de la fonction est correcte (je n'ai jamais utilisé GetInspector)
Remplace ta procédure
Private Sub cmdEnvoi_Click()
Dim iLig As Integer
Dim bFin As Boolean
Dim sObjet As String
Dim sCorps As String
Dim sAdresse As String
Dim sPJ As String
sObjet = Range("P10").Value
bFin = False
iLig = 2
While Not bFin
sCorps = Range("P" & iLig).Value
sAdresse = Range("Q" & iLig).Value
modMail.Envoyer sObjet, sCorps, sAdresse
iLig = iLig + 1
If Range("O" & iLig).Value = "" Then
bFin = True
End If
Wend
End Sub
par
Private Sub cmdEnvoi_Click()
Dim derligne%, i%
derligne = Cells(Application.Rows.Count, "0").End(xlUp).Row
For ligne = 2 To derligne - 1
Envoyer Cells(derligne, "P"), Cells(ligne, "P"), Cells(ligne, "Q")
Next
End Sub
pas testé car les mails partent de suite ...