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 :

extraire d'un fichier une ou plusieurs pour joindre à un email [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Par défaut extraire d'un fichier une ou plusieurs pour joindre à un email
    Bonjour,

    J'ai une macro qui me permet de créer des emails à partir d'excel en intégrant une feuille pour l'intégrer à un envoi d'email.

    Le soucis, je voudrai que la feuille sélectionnée n'ait pas de formules, je voudrai juste valeurs.

    Je voudrai éventuellement ajouter d'autres feuilles à la routin.

    je vous joins la macro que j'ai actuellement :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    Sub Mail_TS()
    'Working in 2000-2010
     
        Dim SigString As String
        Dim Signature As String
     
        Dim FileExtStr As String
        Dim FileFormatNum As Long
        Dim Sourcewb As Workbook
        Dim Destwb As Workbook
        Dim TempFilePath As String
        Dim TempFileName As String
        Dim OutApp As Object
        Dim OutMail As Object
        Dim sh As Worksheet
        Dim TheActiveWindow As Window
        Dim TempWindow As Window
     
        With Application
            .ScreenUpdating = False
            .EnableEvents = False
        End With
     
        Set Sourcewb = ActiveWorkbook
     
        'Copy the sheets to a new workbook
        'We add a temporary Window to avoid the Copy problem
        'if there is a List or Table in one of the sheets and
        'if the sheets are grouped
        With Sourcewb
            Set TheActiveWindow = ActiveWindow
            Set TempWindow = .NewWindow
            .Sheets(Array("FOCUS_Travail")).Copy
     
     
        End With
     
    With Sheets("FOCUS_Travail")
     
        CA_Mail = .Range("D2").Value
        CC_Mail = .Range("E4").Value
     
    End With
        'Close temporary Window
        TempWindow.Close
     
        Set Destwb = ActiveWorkbook
     
     
        'Determine the Excel version and file extension/format
        With Destwb
            If Val(Application.Version) < 12 Then
                'You use Excel 97-2003
                FileExtStr = ".xls": FileFormatNum = -4143
            Else
                'You use Excel 2007-2010, we exit the sub when your answer is
                'NO in the security dialog that you only see  when you copy
                'an sheet from a xlsm file with macro's disabled.
                If Sourcewb.Name = .Name Then
                    With Application
                        .ScreenUpdating = True
                        .EnableEvents = True
                    End With
                    MsgBox "Your answer is NO in the security dialog"
                    Exit Sub
                Else
                    Select Case Sourcewb.FileFormat
                    Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
                    Case 52:
                        If .HasVBProject Then
                            FileExtStr = ".xlsm": FileFormatNum = 52
                        Else
                            FileExtStr = ".xlsx": FileFormatNum = 51
                        End If
                    Case 56: FileExtStr = ".xls": FileFormatNum = 56
                    Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
                    End Select
                End If
            End If
        End With
     
        'Save the new workbook/Mail it/Delete it
        TempFilePath = Environ$("temp") & "\"
        TempFileName = "Part of " & Sourcewb.Name & " " _
                     & Format(Now, "dd-mmm-yy h-mm-ss")
     
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
     
        With Destwb
            .SaveAs TempFilePath & TempFileName & FileExtStr, _
                    FileFormat:=FileFormatNum
            On Error Resume Next
     
     
        On Error Resume Next
     
            With OutMail
    ''' destinataire
                .To = CA_Mail
    ''' copie
                .CC = ""
                .BCC = ""
    ''' Object
                .Subject = "Objet"
     
    ''' corps du mail
                .BodyFormat = olFormatHTML
                    .HTMLBody = "<HTML><body>Bonjour,<p>" _
                    & "Veuillez trouver ci-joint xxxxxxx<p>" _
                    & "Cordialement,<p>" 
                    '& "Ce " & "<i>mot</i> est en italique.<p>" & _
                    '"<b><i><u><font color=green>Ce format est vert, gras, italique et souligné !</font></u></i></b></body><HTML>"
     
                .Attachments.Add Destwb.FullName
     
                '.Send   'or use
                .Display
            End With
            On Error GoTo 0
            .Close SaveChanges:=False
        End With
     
        'Delete the file you have send
        Kill TempFilePath & TempFileName & FileExtStr
     
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
     
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je pense que c'est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets("FOCUS_Travail")
     
        CA_Mail = .Range("D2").Value
        CC_Mail = .Range("E4").Value
         .UsedRange.Value = .UsedRange.Value
    End With
    à tester

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Par défaut
    Super merci.

    je fais essayé d'ajouter d'autres feuilles maintenant.

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

Discussions similaires

  1. [OL-2013] Récupérer des données d'une pièce-jointe pour remplir un email
    Par dashel1 dans le forum Outlook
    Réponses: 4
    Dernier message: 16/03/2017, 18h15
  2. extraire des données d'une ou plusieurs pages web
    Par duboisa dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 14/10/2009, 11h53
  3. Réponses: 1
    Dernier message: 26/01/2007, 08h15
  4. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

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