Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

mail avec pièces jointes.

  • Initiateur de la discussion Initiateur de la discussion apdf1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

apdf1

XLDnaute Impliqué
Bonjour,

J'ai besoin d'un petit coup de main. J'ai un USF pour envoyer des émail avec fichier joint et j'ai un message d'erreur que je n'arrive pas à résoudre.

Voici mon message d'erreur

la méthode 'Range de l'objet ' _'Global' a échoué

Et voici mon code

Code:
Dim I As Integer, ListeDestinataires As String
Private Sub B_go_Click()
If Me.Sujet = "" Then
   MsgBox "Saisissez un sujet !", vbCritical + vbOKOnly, "ATTENTION !"
   Me.Sujet.SetFocus
   Exit Sub
End If
If ListeDestinataires = "" Then
   MsgBox "Choisissez des destinataires !", vbCritical + vbOKOnly, "ATTENTION !"
   Me.Destinataires.SetFocus
   Exit Sub
End If
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Dim olapp As Outlook.Application
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
With msg
    .To = ListeDestinataires
    .Subject = Me.Sujet
    .Body = Me.Message
    For I = 0 To Me.PiècesJointes.ListCount - 1
        .Attachments.Add Me.PiècesJointes.List(I, 0)
    Next I
'   .Send
    .Display
End With
Unload eMail
End Sub

Private Sub CmdAnnuler_Click()
Unload Me
End Sub



Private Sub Destinataires_Change()
ListeDestinataires = ""
For I = 0 To Me.Destinataires.ListCount - 1
If Me.Destinataires.Selected(I) Then ListeDestinataires = ListeDestinataires & ";" & Me.Destinataires.List(I)
Next I
End Sub


Private Sub Parcourir_Click()
Dim fd As FileDialog, Tableau
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
    .AllowMultiSelect = True
    If .Show = -1 Then
        I = 0
        For Each vrtSelectedItem In .SelectedItems
            Tableau = Split(vrtSelectedItem, "\")
            Me.PiècesJointes.AddItem vrtSelectedItem
            Me.PiècesJointes.List(I, 1) = Tableau(UBound(Tableau))
            I = I + 1
        Next vrtSelectedItem
    End If
End With
Set fd = Nothing
End Sub

Private Sub UserForm_Initialize()
Me.Destinataires.List = Range("M2:M").Value
End Sub

Si quelqu'un peu m'aider je le remercie d'avance.

Cordialement

Max
 
Re : mail avec pièces jointes.

Bonjour.
"M2:M" n'est pas une référence de plage valide: il manque la lignr de fin.
Par ailleurs il serait bon de qualifier l'expression Range du CodeName de la feuille.
À+
 
Re : mail avec pièces jointes.

Ou alors donnez un nom à votre plage de destinataires, et spécifiez ce nom dans la propriété RowSource. Mais il est possible que ça ne supporte pas très bien le truc très à la mode: les plages dynamiques. C'est à vous de joindre ce que vous avez essayé.
À+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
917
Réponses
10
Affichages
673
Réponses
15
Affichages
793
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…