email avec pièce jointe dans userform (Résolu)

fredoud

XLDnaute Junior
Bonjour,

Comment-faire pour envoyer des emails d'une liste (colonne M par exemple) et de pouvoir ajouter une pièce jointe tout ça dans userform. J'ai commencé mais fonctionne pas.

Pouvez-vous m'aider ,

Cordialement

Frederique
 

Pièces jointes

  • Fichier Clients-v1.xls
    140 KB · Affichages: 303
  • Fichier Clients-v1.xls
    140 KB · Affichages: 318
  • Fichier Clients-v1.xls
    140 KB · Affichages: 313
Dernière édition:

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Bonsoir Fredoud :),
Je pense que la méthode FileDialog devrait te convenir :p...
En reprennant le code prévu dans l'aide
Code:
Sub Main()
 
    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog
 
    'Create a FileDialog object as a [B]File Picker[/B] dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
    'Declare a variable to contain the path
    'of each selected item. Even though the path is aString,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant
 
    'Use a With...End With block to reference the FileDialog object.
    With fd
 
         'Allow the selection of multiple file. 
        .AllowMultiSelect = True 
 
        'Use the Show method to display the [B]File Picker[/B] dialog box and return the user's action.
        'The user pressed the button.
        If .Show = -1 Then
 
            'Step through each string in the FileDialogSelectedItems collection
            For Each vrtSelectedItem In .SelectedItems
 
                'vrtSelectedItem is aString that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example displays the path in a message box.
                MsgBox "Selected item's path: " & vrtSelectedItem
 
            Next vrtSelectedItem
        'The user pressed Cancel.
        Else
        End If
    End With
 
    'Set the object variable to Nothing.
    Set fd = Nothing
 
End Sub
tu peux remplacer le MsgBox par, soit une entrée dans un tableau, soit une séparation avec VbCrlf dans une String qu'il te suffit de séparer avec un Split :rolleyes:...
Puis, dans ton code
Code:
.Attachments.Add ChaquePièceJointe
Bon courage :cool:
 

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

Bonjour JNP,

Merci d'avoir répondu à mon secours. Étant novice en VBA, désolée de poser une question bête : ou est-ce que je mets le code dans mon l'userform "emailing" (on l'affiche en cliquant sur bouton "email" de la base)? Pour les pièces jointes n'ont plus je ne sais pas. Que signifie un Split.

Pouvez-vous modifier mon fichier et me le retourner ?

En vous remerciant

Cordialement

Frederique
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Bonjour Frédérique :),
Modifier ton fichier, non, car entre le "bordel" qu'il y a dedans et le fait que tu as protégé l'accès aux références, pas possible :rolleyes:...
J'ai juste récupéré ta feuille Base et ton USF que j'ai modifiés (entre autre, j'ai supprimé toutes les zones nommées qui servaient à rien pour utiliser un tableau 2007 qui est bien plus pratique :p...).
Pour les destinataires, il te suffit de sélectionner ceux que tu souhaites.
Comme je suis en 2010, les références ne seront pas bonnes, avant de te servir de mon fichier, il faudra que tu ouvres l'éditeur VB, Outils -> Références... et là, tu cherches "Microsoft Outlook 12.0 Object Library" et tu le coches.
Bises et bon dimanche :cool:
 

Pièces jointes

  • Envoyer mail.xlsm
    30.7 KB · Affichages: 171
  • Envoyer mail.xlsm
    30.7 KB · Affichages: 185
  • Envoyer mail.xlsm
    30.7 KB · Affichages: 189

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

Bonsoir JNP,

J'ai fais ce que vous m'avez dit concernant les références. Ensuite, jJ'ouvre l'userform et rempli les différents controls puis je clique sur envoi, là il y a un problème, VBA s'ouvre et m'indique qu'il y a une erreur à la ligne "Set olapp = New Outlook.Application" dans le code de l'userform.

Vous savez à quoi c'est du , comment peut-on régler ce problème ?

Je vous remercie de vous occuper de mon cas, sympa de pouvoir compter sur quelqu'un.

Cordialement

Frederique
 

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

RE :),
Bizarre, si la référence est active, le code ne devrait pas beuguer :confused:...
Là, je ne vois pas...
Un autre testeur pourrait peut-être nous dire où est le problème :rolleyes:...
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Re :),
Je viens de le tester avec 2007, en mettant la bonne référence, pas de soucis :rolleyes:...
Je te remets le fichier avec la bonne référence cochée, ça devrait marcher :p...
Bises :cool:
 

Pièces jointes

  • Envoyer mail(2007).xlsm
    28.3 KB · Affichages: 185
  • Envoyer mail(2007).xlsm
    28.3 KB · Affichages: 174
  • Envoyer mail(2007).xlsm
    28.3 KB · Affichages: 178

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

Bonjour,

franchement merci, en faisant l'essai avec le nouveau ça fonctionne. J'ai une autre question si j'utilise un filtre, par exemple sur les départements, je voudrait que l'envoi d’émail se fasse sur ces départements donc ce qui est afficher car j'ai plus de 1500 noms. Là apparemment, il prend toutes les adresses. Savez-ce qu'il faut modifier dans le codes sachant que le filtre est effectuer via une autre userform1 ?

Je vous remercie de l'aide que vous apporter,

Au plaisir de vous relire

Frederique
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Re :),
Modifie l'initialize ainsi
Code:
Private Sub UserForm_Initialize()
Dim Cellule As Range
For Each Cellule In Range("Tableau1[eMail]")
If Cellule.EntireRow.Hidden = False Then
Me.Destinataires.AddItem Cellule
End If
Next
End Sub
Bises :cool:
 

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

Re bonjour,

Super ça marche comme je voulais, maintenant il faut que je l'adapte dans mon bordel comme vous dites.

Au fait y-a-t'il moyen de selectionner automatiquement les destinataires car il pose la question quand je clique sur envoi ? J'oublie toujours de les selectionnées au début.

Merci beaucoup JNP

Frederique
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Re :),
Difficile la demoiselle :p...
Modifie
Code:
Private Sub B_go_Click()
If Me.Sujet = "" Then
   MsgBox "Saisissez un sujet !", vbCritical + vbOKOnly, "ATTENTION !"
   Me.Sujet.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 = Join(Destinataires, ";")
    .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 eMailing
End Sub
et supprime carrément Destinataires_Change :rolleyes:...
On est au bout ;) ?
Bises :cool:
 

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

bonsoir

Désolée JNP, j'ai crié victoire trop vite. Dès que je créée le bouton pour ouvrir userform emailing avec nom de macro Envoie_mailing, j'ai une "erreur d'exécution '1004': La méthode 'Range' de l'objet '_Global' a échoué"
et dans visual basic, cela se positionne à la 2è ligne ci-dessous
Sub Envoie_mailing()
eMailing.Show
End Sub
Pourtant, c'est bon, non ! Quand je regarde à gauche dans projet - feuille, j'ai bien eMailing.

C'est fou quand meme

Frederique
 
Dernière édition:

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

re bonsoir,

J'ai fais plusieurs essais avec votre fichier pour les différentes étapes et là je me suis aperçu que les destinataires se trouvent dans "A:, est-il possible qu'ils soient dans "CCi"?
J'ai consciense que j'en demande beaucoup mais c'est pour me faciliter la tache que je fais fichier
Désolée de vous ennuyez JNP

Frederique
 

Pièces jointes

  • Envoyer mail(2007).xlsm
    22.2 KB · Affichages: 137
  • Envoyer mail(2007).xlsm
    22.2 KB · Affichages: 157
  • Envoyer mail(2007).xlsm
    22.2 KB · Affichages: 155
Dernière édition:

JNP

XLDnaute Barbatruc
Re : email avec pièce jointe dans userform

Re :),
Tu peux m'aduler ou m'abhorrer, mais pas me faire prendre 10 ans à chaque post avec des vouvoiements "grands comme le bras" :p...
C'est normal que ça plante si ton fichier de départ n'a pas un Tableau1 déclaré en tableau avec une entête eMail, vu que j'y fait référence au chargement de l'USF :rolleyes: :
Code:
Range("Tableau1[eMail]")
Pour la Copie Carbone Invisible (et oui, c'est ça CCi :p), il suffit de remplacer
Code:
.To = Join(Destinataires, ";")
par
Code:
.BCC = Join(Destinataires, ";")
Bises et bonne journée :cool:
 

fredoud

XLDnaute Junior
Re : email avec pièce jointe dans userform

Bonjour JNP,

Désolée de t'importuné, et bien j'ai modifié le .TO en .BCC, ça ne fonctionne pas. Moi meme j'avais essayer CCI dans le fichier "Envoyer mail(2007).xlsm" pour etrre sur qu'il n'y a pas d'erreur et sans ajouter "Tableau1", c'est un peu confue dans ma tete. Dans mon propre fichier, j'ai ajouté une feuille nommée "Tableau1" avec entete "eMail en case A1 d'ailleurs chose étrange dans les précédents fichier tu ne fais pas allusion au case, je ne voit pas quelque part tableau 1 a part dans Userform_Initialisze(), j'ai du me tromper et mal comprendre !

Au plaisir de te relire

Frederique
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
368

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC