Transmettre classeur actif par mail

Résolu
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -  
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

16 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour,
Merci pour ta réponse, cependant ça bloque à : .Send
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Sur erreur ou ……..
Parce que chez moi, ca marche
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re
Faites une recherche sur internet
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Re
J'ai regardé Internet mais rien trouvé de probant
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Vous pouvez mettre votre fichier a dispo????
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Voici en te remerciant
https://www.cjoint.com/c/IEekDbgLFv6
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Chez moi, apres modif de votre code , c'est ok pour la partie Outlook: https://mon-partage.fr/f/DnQl3KTM/
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

en renouvelant mes excuses
Y a pas d'lezard

source_file = "chemin sur le disque/MonDossier.zip"
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
.Attachments.Add "C:\%userprofile%\NouvelFiche.zip"
est surligné en jaune
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour f894009
Suivant vos conseils, j'ai mis l'ensemble des fichiers dans C:\ADD\
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Y a une ligne qui devrait etre en commentaire apres '.HTMLBody!!!!
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ben, chez moi, une seule fois. Par hazard, la procedure ne serait pas appelee deux fois!!!!
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
J'ai trouvé, il y a 2 fois transmail 1-en compresser 2-en envoyer
Merci à toi et bonne continuation
0