IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Envoyer une feuille à l'aide d'outlook [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut Envoyer une feuille à l'aide d'outlook
    Bonjour,

    Je souhaite envoyer une feuille que je copie dans un autre classeur par le biais d'Outlook. J'ai essayé différente chose mais ca n'envoie rien.

    Voici mon code, j'ai l'impression que j'en suis pas loin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Sub envoimail()
     
    Dim ObjOutlook As New Outlook.Application
    Dim oBjMail
    Dim fichiers As String
    Dim i As Integer
    Dim path As String
     
    service = InputBox("Quelle est le nom de votre service ?", "Service")
    semaine = ActiveSheet.Range("C3").Value
    'Application.DisplayAlerts = False
        Sheets("Planning hebdo").Copy
        ChDir "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi"
        ActiveWorkbook.SaveAs Filename:="X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
    'Application.DisplayAlerts = True.
     
    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
     
    fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"""
      If fichiers = "" Then Exit Sub
     
    With oBjMail
        .To = "mon adresse mail"
        .Subject = "Liste de recensement de la " & semaine & " du service " & service
        .Body = "Bonjour, " & _
                vbCrLf & vbCrLf & _
                "Ci-joint la liste de recensement du personnel de mon secteur " & service & _
                vbCrLf & vbCrLf & _
                "Bonne réception."
        .Attachments.AddItem fichier
        .Display
        .send
    End With
     
        ObjOutlook.Quit
        Set oBjMail = Nothing
        Set ObjOutlook = Nothing
     
    End Sub
    Pouvez vous m'aider,
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour, regardes ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub envoiermail()
    Dim fichiers As String
    Dim i As Integer
    Dim path As String
    Dim txtBody As String
    service = InputBox("Quelle est le nom de votre service ?", "Service")
    semaine = ActiveSheet.Range("C3").Value
    'Application.DisplayAlerts = False
        Sheets("Planning hebdo").Copy
        ChDir "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi"
        ActiveWorkbook.SaveAs Filename:="X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
    'Application.DisplayAlerts = True.
     fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"""
      If fichiers = "" Then Exit Sub
    txtBody = "Bonjour, " & _
                vbCrLf & vbCrLf & _
                "Ci-joint la liste de recensement du personnel de mon secteur " & service & _
                vbCrLf & vbCrLf & _
                "Bonne réception."
     EnvoiMail_Outlook "Liste de recensement de la " & semaine & " du service " & service, txtBody, "mon adresse mail", Pj:=fichiers
    End Sub
     
    Sub EnvoiMail_Outlook(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set ObjOutlook = CreateObject("Outlook.application")
    Set MailObj = ObjOutlook.CreateItem(0)
    With MailObj
        .To = Destinataire
        .cc = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .SEND
    End With
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Merci pour ton aides,

    On va plus loin mais j'ai ce message qui apparait. Je pense que ça fait suite au fait que le fichier qui a été generé ne comporte plus de macro (du moins Excel me pose la question si je veux l'enregistrer avec macro) je réponds non.
    Nom : Capture.JPG
Affichages : 123
Taille : 35,8 Ko

    Qu'est ce que tu en penses ?

    Merci,
    Will

  4. #4
    Invité
    Invité(e)
    Par défaut test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub envoiermail()
    Dim fichiers As String
    Dim i As Integer
    Dim path As String
    Dim txtBody As String
    service = InputBox("Quelle est le nom de votre service ?", "Service")
    semaine = ActiveSheet.Range("C3").Value
    'Application.DisplayAlerts = False
        Sheets("Planning hebdo").Copy
        ChDir "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi"
        fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"
         ActiveWorkbook.SaveAs Filename:=fichiers, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
    'Application.DisplayAlerts = True.
    txtBody = "Bonjour, " & _
                vbCrLf & vbCrLf & _
                "Ci-joint la liste de recensement du personnel de mon secteur " & service & _
                vbCrLf & vbCrLf & _
                "Bonne réception."
     EnvoiMail_Outlook "Liste de recensement de la " & semaine & " du service " & service, txtBody, "mon adresse mail", Pj:=fichiers
    End Sub
    Dernière modification par AlainTech ; 02/08/2014 à 10h29. Motif: Suppression de la citation inutile

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Non ca ne fonctionne pas, j'ai pas le même message par contre ou disons pas tout a fait le même.

    Nom : Capture2.JPG
Affichages : 103
Taille : 24,2 Ko

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    un autre essai?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub envoiermail()
    Dim fichiers As String
    Dim i As Integer
    Dim path As String
    Dim txtBody As String
    service = InputBox("Quelle est le nom de votre service ?", "Service")
    semaine = ActiveSheet.Range("C3").Value
    'Application.DisplayAlerts = False
        'Sheets("Planning hebdo").Copy
         fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"
        ActiveWorkbook.SaveAs FileName:=fichiers, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        'ActiveWindow.Close
    'Application.DisplayAlerts = True.
     
      If fichiers = "" Then Exit Sub
    txtBody = "Bonjour, " & _
                vbCrLf & vbCrLf & _
                "Ci-joint la liste de recensement du personnel de mon secteur " & service & _
                vbCrLf & vbCrLf & _
                "Bonne réception."
     EnvoiMail_Outlook "Liste de recensement de la " & semaine & " du service " & service, txtBody, "mon adresse mail", Pj:=fichiers
    End Sub
     
    Sub EnvoiMail_Outlook(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set ObjOutlook = CreateObject("Outlook.application")
    Set MailObj = ObjOutlook.CreateItem(0)
    With MailObj
        .To = Destinataire
        .cc = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .SEND
    End With
    End Sub

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 65
    Points
    65
    Par défaut
    Super ça fonctionne parfaitement, tu vas peut etre t'enervé quand je vais te dire que la deuxiemen fois j'avais oublié de remettre mon adresse mail.

    autant pour moi, en tout cas c'est ta derniere solution qui fonctionne.

    J'ai pas vu ce que tu as changé, si tu veux me le dire. Je me sentirais mon ignorant.

    En tout cas, merci beaucoup.

    Will

  8. #8
    Invité
    Invité(e)
    Par défaut
    d’abord j'ai ajouté un fonction pour envoyer les mail. ça ne veut pas dire que ce que tu avais fait ne fonctionnait pas mais je ne n’embête j'ai un truc qui marche alors je le colle sans analyser cette partie!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub EnvoiMail_Outlook(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set ObjOutlook = CreateObject("Outlook.application")
    Set MailObj = ObjOutlook.CreateItem(0)
    With MailObj
        .To = Destinataire
        .cc = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .SEND
    End With
    End Sub
    en suite tu enregistrais ton fichier mais tu ne récupérais pas le même nom pour la pièce jonte!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Filename:="X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"
    fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"""
    j'ai donc choisi de nommer ton fichier avant la sauvegarde ainsi si tu te trompe dans le nom du fichier au-moins tu te trompe partout!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fichiers = "X:\EFFECTIFS\2014\Sauvegarde planning à 2 jours maxi\liste de recensement " & service & " " & semaine & ".xlsx"
    ActiveWorkbook.SaveAs Filename:=fichiers, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
     EnvoiMail_Outlook "Liste de recensement de la " & semaine & " du service " & service, txtBody, "mon adresse mail", Pj:=fichiers
    et enfin j'ai mis en commentaire
    qui ferme ton fichier avant l’arrêt complet de l'appareil!
    Dernière modification par AlainTech ; 02/08/2014 à 10h30. Motif: Suppression de la citation inutile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème VBA: Activer une feuille à l'aide d'une variable
    Par andy05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2014, 15h10
  2. [XL-2007] Envoyer une feuille d'un classeur par email avec le body du message
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/12/2013, 17h47
  3. [XL-2010] Envoyer une feuille par mail outook
    Par yoyo-tns dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2013, 13h21
  4. [Toutes versions] Récupérer et envoyer une feuille de calculs stockée sur internet
    Par xavion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/01/2013, 14h37
  5. Réponses: 1
    Dernier message: 28/11/2012, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo