Menu

Transmettre classeur actif par mail [Résolu]

Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
-
Bonjour à chacun,
Je souhaiterai envoyer le classeur actif (2 feuilles), lors de la validation d'une fiche de renseignements lorsque clic sur le bouton Valider saisie
L'adresse mail de l’expéditeur se trouvant en A49 et les destinataires de A51 à A55.
Je ne maîtrise pas du tout le Vba.
En vous remerciant.

https://www.cjoint.com/c/IEbnNAzV1p6
Afficher la suite 

Votre réponse

16 réponses

Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137
Commenter la réponse de f894009
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonjour f894009
Je te remercie de me répondre, mais je ne parle pas l'anglais
Aurais-tu la gentillesse de me mettre le code Stp
En te remerciant
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Re,
Outlook, pas possible de preciser des adresses expéditeurs autres que celle du compte sur le PC

Faut passer par CDO. Ce classeur devrait vous rappeler kake chose
https://mon-partage.fr/f/903I8aaj/

Pour les destinataires, les mettre dans une variable avec un point-virgule+espace de separation
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonjour cher ami
Je ne me souviens pas du tout de ce classeur, certainement du à l'AVC de noël dernier, mais reçoit tous mes remerciements pour ta bonne mémoire
Au plaisir
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonjour f894009
Dans la macro ci-dessous il y a un problème à Set Plage erreur 13
Je te remercie de bien vouloir me corriger

Sub Envoi_Mail()
Dim ol As Object, myItem As Object
Dim ListDest As String
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
'Propriétés de l'e-mail
With OutMail
          Liste = ""
'Plage Nommée "Dest"     
          Set Plage = Dest      ' ????
'Récupération de la liste des destinataires
          For Each Cell In Plage.Cells
               If Liste = "" Then
                   Liste = Liste & Cell
               Else
                   Liste = Liste & ";" & Cell
               End If
         Next Cell
.To = Liste
myItem.Subject = "envoi d'un fichier attaché"
myItem.Body = "Veuillez trouver ci-joint le fichier pour mise à jour de la Base"
'fichier en cours d'utilisation envoyé en attaché:
myItem.Attachments.Add ActiveWorkbook.FullName
myItem.Send
End With
Set ol = Nothing
End Sub
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Si Dest est une plage nommee, pas besoin de la transferer dans une variable

Sub Envoi_Mail()
    Dim OutApp As Object, OutMail As Object
    Dim ListDest As String
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    'Propri?t?s de l'e-mail
    With OutMail
          Liste = ""
        'Plage Nomm?e "Dest"
        'R?cup?ration de la liste des destinataires
          For Each Cell In Range("Dest")
               If Cell <> "" Then
                   Liste = Cell & ";" & Liste
               End If
         Next Cell
        .To = Liste
        .Subject = "envoi d'un fichier attach?"
        .Body = "Veuillez trouver ci-joint le fichier pour mise ? jour de la Base"
        'fichier en cours d'utilisation envoy? en attach?:
        .Attachments.Add ActiveWorkbook.FullName
        '.display
        .Send
    End With
    Set OutApp = Nothing
    Set OutMail = Nothing
End Sub
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonjour,
Merci pour ta réponse, cependant ça bloque à : .Send
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Re,

Sur erreur ou ……..
Parce que chez moi, ca marche
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Re
Faites une recherche sur internet
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Re
J'ai regardé Internet mais rien trouvé de probant
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Vous pouvez mettre votre fichier a dispo????
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Voici en te remerciant
https://www.cjoint.com/c/IEekDbgLFv6
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Chez moi, apres modif de votre code , c'est ok pour la partie Outlook: https://mon-partage.fr/f/DnQl3KTM/
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonsoir f894009
Je te prie de bien vouloir m'excuser car je m'aperçois que je me suis planté dans ma demande
Je reviendrai vers toi lundi ou mardi car j'ai de grosses difficultés pour raisonner
Je te remercie de ta patience et de ton indulgence
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Désolé pour cette perte de temps mon ami
Ce n'est pas le dossier actif que je souhaite envoyer mais "MonDossier.zip" qui se trouve sur le bureau l'écran.
Que ce dossier soit transmis direct sans affichage de Outlook
En te remerciant et en renouvelant mes excuses
Commenter la réponse de jean300
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137
0
Merci
Bonjour,

en renouvelant mes excuses
Y a pas d'lezard

source_file = "chemin sur le disque/MonDossier.zip"
Commenter la réponse de f894009
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Re
Je te remercie f894009
J'ai modifié comme suit :
        'fichier envoyé en attache :
        'source_file = "chemin sur le disque/NouvelFiche.zip"
        .Attachments.Add "E:\Utilisateurs\Castor\Desktop\NouvelFiche.zip"
        '.display
        .Send

Mais, car il y a un mais, je ne connais pas le chemin des personnes qui enverront cette fiche, la seule chose certaine c'est que le dossier s'appellera NouvelFiche.zip
Merci de m'éclairer
jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5 -
.Attachments.Add "C:\%userprofile%\NouvelFiche.zip"
est surligné en jaune
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Pas vraiment simple a faire car en plus il semblerait (vu votre code post 18) que le disque serait aussi inconnu
Faudrait "imposer" un disque, un repertoire ou que les fichiers Excel avec le code et le zip soient dans au meme endroit: disque et repetoire
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonjour f894009
Suivant vos conseils, j'ai mis l'ensemble des fichiers dans C:\ADD\
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Re
Dans cette macro, le mail est envoyé deux fois, pourquoi ?

Sub TransMail()
    Dim OL As Object
        If StrComp(Application, "Outlook", vbTextCompare) = 0 Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If

    Dim MESSAGE As Object
    Dim objRecipient As Object

'en LATEBINDING on doit déclarer les constantes Outlook utilisées
    Const olFormatPlain = 1
    Const olFormatHTML = 2
    Const olTo = 1
    Const olCC = 2
    Const olBCC = 3

    Set MESSAGE = OL.CreateItem(0)
    With MESSAGE
        .Subject = "Mise a jour Annuaire_APEM"

    'Soit on ajoute un Corps en TEXTE BRUT
    .BodyFormat = olFormatPlain
    .Body = "Veuillez trouver ci-joint un dossier pour la mise à jour de l'annuaire." & vbCr & "Jean"

        'Soit on ajoute un Corps en HTML
        '.BodyFormat = olFormatHTML
        '.HTMLBody = "<html><body> <font face=""arial""><p>Bonjour,</p><p>Ceci est un exemple de Message HTML</p><p>Il faut utiliser des balises HTML pour formater le texte.</p><p>En <strong>gras</strong>, <em>Italic</em>, <u>Souligné</u></p><BR><p>Je suis passé à la ligne</p><p>Voici un lien hypertexte.</p>" _
         &                    "<a href=""mailto:Joe.User@MyCompany.com"">Joe User</a></font></body></html>"

'Ajout des destinataires zone nommée : "DestMail"
Dim cellule As Range
    For Each cellule In Worksheets("FR").Range("DestMail")
        If InStr(1, cellule.Value, "@") > 0 Then
        Set objRecipient = .Recipients.Add(cellule.Value)
            objRecipient.Type = olTo    'olBCC, olCC, olOriginator ou olTo.
            objRecipient.Resolve
        End If
    Next
'Ajout d 'une PJ
        Dim MaPJ
        'Nom du dossier a joindre : "NouvelFiche.zip"
        
Dim strFolder As String, WshShell, leFichier
Set WshShell = CreateObject("WScript.Shell")
strFolder = WshShell.SpecialFolders("Desktop")

        MaPJ = "NouvelFiche.zip"
        'on vérifie d'abord qu'il existe.
        If Dir(strFolder & "\" & MaPJ) <> "" Then
        '.Attachments.Add MaPJ  "NouvelFiche.zip"
        .Attachments.Add (strFolder & "\" & MaPJ)
        Else
            MsgBox "Fichier : " & MaPJ & vbCr & "Non trouvée sur:" & vbCr & strFolder, vbCritical
            .display
'on affiche le mail et fin
            End
        End If
'ajout pour lecture
'        .ReadReceiptRequested = True

'envoi selon adresse mail en :
         .SentOnBehalfOfName = Worksheets("FR").Range("J13")
        'Display   'Soit je l'affiche
        .Send   'Soit je l'envoi
    End With
End Sub
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Y a une ligne qui devrait etre en commentaire apres '.HTMLBody!!!!
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
Bonsoir
J'ai fais :

    'Soit on ajoute un Corps en HTML
    '.BodyFormat = olFormatHTML
    '.HTMLBody = "<html><body> <font face=""arial""><p>Bonjour,</p><p>Ceci est un exemple de Message HTML</p><p>Il faut utiliser des balises HTML pour formater le texte.</p><p>En <strong>gras</strong>, <em>Italic</em>, <u>Souligné</u></p><BR><p>Je suis passé à la ligne</p><p>Voici un lien hypertexte.</p>" _
    '     &                    "<a href=""mailto:Joe.User@MyCompany.com"">Joe User</a></font></body></html>"

'Destinataires de la zone nommée : "DestMail"

Mais pareil 2 mail sont envoyés, vraiment mystérieux
f894009
Messages postés
14383
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
24 mai 2019
1137 -
Bonjour,

Ben, chez moi, une seule fois. Par hazard, la procedure ne serait pas appelee deux fois!!!!
Commenter la réponse de jean300
Messages postés
311
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
14 mai 2019
5
0
Merci
J'ai trouvé, il y a 2 fois transmail 1-en compresser 2-en envoyer
Merci à toi et bonne continuation
Commenter la réponse de jean300