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

Excel Discussion :

Enregistrement d'un mail généré depuis excel VBA dans un répertoire choisi. [XL-2003]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Enregistrement d'un mail généré depuis excel VBA dans un répertoire choisi.
    Bonjour,

    Je vous expose mon problème:
    Je génère des mails depuis un fichier Excel que je doit adresser à des destinataires différents.
    Je souhaiterai que chaque mail créé et envoyé soit enregistré dans un répertoire spécifique dans mon disque dur et bien sur en dehors de outlook.
    Vous trouverez ci-après un début de procédure qui fonctionne parfaitement jusqu'à la création du mail mais qui n'enregistre pas ce dernier sur mon disque dur.

    Je vous remercie d'avance pour l'aide apportée.
    Cordialement

    Sub envoimail()
    'Mail aux concessionnaires
    Dim Outlook As Object
    Dim objCurrentMessage As Object
    Dim Mail As Object
    Dim dest As String
    Dim Objet As String
    Dim Corps As String
    Dim Adr As String

    Dim num, dest1
    Range("V1").Select
    dest = ActiveCell
    Range("N2").Select
    num = ActiveCell
    dest1 = dest 'adresse du destinataire
    Objet = "Dossier DICT-DT N° " & Range("B" & num).Value & " - " & Range("V1").Value
    Range("N1").Select
    Adr = ActiveCell
    'corps de texte avec texte et sauts de ligne
    Corps = "Bonjour, " & _
    vbCrLf & _
    "Veuillez trouver ci-joint en annexe, une déclaration de projet de travaux concernant :" & " " & Range("M" & num).Value & " ayant pour objet :" & Range("K" & num).Value & _
    vbCrLf & _
    "Vous en souhaitant bonne réception." & _
    vbCrLf & _
    "Cordialement." & _
    vbCrLf & vbCrLf & _
    "PS : Ce mail est généré automatiquement, merci de ne pas y répondre." & _
    vbCrLf & vbCrLf & _
    "XXXX" & _
    vbCrLf & _
    "YYYYY" & _
    vbCrLf & _
    "ZZZZ" & _
    vbCrLf & _
    "Secrétaire AAAA" & _
    vbCrLf & _
    "Adresse" & _
    vbCrLf & _
    "CP" & _
    vbCrLf & _
    "Mailto: " & Adr
    Set Outlook = CreateObject("Outlook.Application")
    Set Mail = Outlook.CreateItem(0)
    With Mail
    .To = dest
    .CC = ""
    .BCC = ""
    .Subject = Objet
    .Body = Corps
    Workbooks.Open Filename:= _
    Range("Q" & num).Value
    On Error GoTo 100
    .Attachments.Add ActiveWorkbook.FullName
    ActiveWindow.Close
    Workbooks.Open Filename:= _
    Range("R" & num).Value
    .Attachments.Add ActiveWorkbook.FullName
    On Error GoTo 100
    ActiveWindow.Close
    .Display
    End With
    With Mail
    Dim Repertoire, NomExport
    NomExport = objCurrentMessage.Subject & objCurrentMessage.CreationTime ' Range("V" & num).Value
    Repertoire = Range("U" & num).Value
    .Mail.SaveAs.Filename = Repertoire
    End With
    100
    End Sub

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Un conseil : mets ton code entre balises de code (surligne-le et appuie sur "#") avant qu'un modo te botte le c..
    Sinon, peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Mail.SaveAs.Filename = Repertoire & "\" & NomExport
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Bonjour,
    Citation Envoyé par Daniel.C Voir le message
    Bonjour,

    Un conseil : mets ton code entre balises de code (surligne-le et appuie sur "#") avant qu'un modo te botte le c..
    Sinon, peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Mail.SaveAs.Filename = Repertoire & "\" & NomExport
    Merci pour l'information cependant je débute dans le domaine et je reconnais ne pas être au point dans l'usage du forum.
    Désolé, mais je vais tenter de m'appliquer.
    En ce qui concerne la réponse à mon problème, l'enregistrement ne s'effectue pas et ce sans qu'aucun message d’erreur n'apparaisse.
    Peut-être auriez vous une idée.
    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    les deux étant pourtant directement consultables, rappels :

    Règles du forum (point III-E en particulier …)

    Editorial - A lire avant de poster

    Cordialement.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pour quelle raison veux-tu le sauvegarder ? Pour pouvoir en garder une trace ou pour pouvoir le réutiliser en tant que mail ?

    Dans le premier cas, je te conseille d'en faire tout simplement un PDF : c'est simple, pas gourmand en mémoire, facile à utilisé, pérenne, transmissible, etc.
    Perso, c'est la solution que j'utilise pour archiver mes mails quand ils ne sont plus d'actualité.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Tout d'abord merci pour les infos d'usage du forum.
    Je viens d'imprimer les docs que je consulte .
    En ce qui concerne les mails, je souhaiterai conserver ces mails pour chaque dossier créés afin qu'il reste une trace de ces derniers en cas de réclamations.En deux mots, je doit émettre des mails à différents professionnels qui devront en retour préciser la présence ou non de réseaux.
    Cette consultation est particulièrement sensible car elle engage notre responsabilité en cas de problème survenu sur les chantiers.
    Le code fonctionne parfaitement mais l'enregistrement des mails n'est pas réalisé.

    voici le code :
    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
    Sub envoimail()
    'Mail aux concessionnaires
    Dim Outlook As Object
    Dim objCurrentMessage As Object
    Dim Mail As Object
    Dim dest As String
    Dim Objet As String
    Dim Corps As String
    Dim Adr As String
    Dim num, dest1
    Range("V1").Select
    dest = ActiveCell
    Range("N2").Select
    num = ActiveCell
    dest1 = dest 'adresse du destinataire
    Objet = "Dossier DICT-DT N° " & Range("B" & num).Value & " - " & Range("V1").Value
    Range("N1").Select
    Adr = ActiveCell
    'corps de texte avec texte et sauts de ligne
    Corps = "Bonjour, " & _
    vbCrLf & _
    "Veuillez trouver ci-joint en annexe, une déclaration de projet de travaux concernant :" & "  " & Range("M" & num).Value & " ayant pour objet :" & Range("K" & num).Value & _
    vbCrLf & _
    "Vous en souhaitant bonne réception." & _
    vbCrLf & _
    "Cordialement." & _
    vbCrLf & vbCrLf & _
    "PS : Ce mail est généré automatiquement, merci de ne pas y répondre." & _
    vbCrLf & vbCrLf & _
    "CGHG" & _
    vbCrLf & _
    "DVI" & _
    vbCrLf & _
    "SRD M" & _
    vbCrLf & _
    "SPA" & _
    vbCrLf & _
    "Adresse" & _
    vbCrLf & _
    "CP commune" & _
    vbCrLf & _
    "Mailto: " & Adr
    Set Outlook = CreateObject("Outlook.Application")
    Set Mail = Outlook.CreateItem(0)
    With Mail
    .To = dest
    .CC = ""
    .BCC = ""
    .Subject = Objet
    .Body = Corps
    Workbooks.Open Filename:= _
    Range("Q" & num).Value
    On Error GoTo 100
    .Attachments.Add ActiveWorkbook.FullName
    ActiveWindow.Close
    Workbooks.Open Filename:= _
    Range("R" & num).Value
    .Attachments.Add ActiveWorkbook.FullName
    On Error GoTo 100
    ActiveWindow.Close
    .Display
    Mail.PrintOut
    Dim Repertoire, NomExport
    NomExport = Mail.Subject
    Repertoire = Range("U" & num).Value
    Mail.SaveAs.Filename = Repertoire & "\" & NomExport & ".msg"
    End With
    100
    End Sub
    .

    Merci pour la suite que vous souhaiterez donner à ce problème.
    Cordialement.

  7. #7
    Membre du Club Avatar de SCryptCypher
    Femme Profil pro
    MacGyver
    Inscrit en
    Novembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : MacGyver

    Informations forums :
    Inscription : Novembre 2013
    Messages : 35
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SavePath = Repertoire & "\" & NomExport & ".msg"
    Mail.SaveAs SavePath, OlSaveAsType.olMSG
    Sinon vérifie que le répertoire de sauvegarde est correct.
    « Si c’est vert ou si ça remue, c’est de la biologie.
    Si ça pue, c’est de la chimie.
    Si ça ne fonctionne pas, c’est de la physique.
    Si ça occupe des tableaux entiers de formules, c’est des mathématiques.
    Si ça fait ce qu’on dit, mais pas ce qu’on veut, c’est de l’informatique. »

  8. #8
    Membre averti Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 324
    Points
    324
    Par défaut
    Bonsoir,

    Tu peux ajouter ce bout de code pour contrôler l’existence du dossier avant enregistrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      If Not fso.FolderExists(Repertoire & "\") Then MsgBox "Le dossier n''existe pas.", vbCritical, "Error Path"
      Set fso = Nothing
    Cdlt,
    Les ordinateurs sont inutiles. Ils ne savent que donner des réponses.
    Pablo Picasso

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je fait suite à votre dernière réponse pour laquelle je vous adresse mes remerciements.
    J'ai effectivement rajouté le code que vous m'avez proposé, cependant, aucune sauvegarde n'est réalisée.

    Après vérification du nom du répertoire, il semble que la procédure ne s'effectue pas.
    Peut-être aurais-je omis de vous préciser que je travaille avec Outlook 2010 et excel 2003.
    Cela pourrait influer sur le résultat.
    De plus, lors de l'exécution de ce code, VBA me précise qu'une erreur de compilation : Variable non définie concerne le "OlSaveAsType" comme indiqué ci-dessous en rouge dans le code.
    Je vous remercie de bien vouloir m'éclairer sur ce sujet.

    Je me permet de vous joindre le code après saisie de votre proposition.

    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
    Sub envoimail()
    'Mail aux concessionnaires
    Dim Outlook As Object
    Dim objCurrentMessage As Object
    Dim Mail As Object
    Dim dest As String
    Dim Objet As String
    Dim Corps As String
    Dim Adr As String
    Dim num, dest1
    Range("V1").Select
    dest = ActiveCell
    Range("N2").Select
    num = ActiveCell
    dest1 = dest 'adresse du destinataire
    Objet = "Dossier DICT-DT N° " & Range("B" & num).Value & " - " & Range("V1").Value
    Range("N1").Select
    Adr = ActiveCell
    'corps de texte avec texte et sauts de ligne
    Corps = "Bonjour, " & _
    vbCrLf & _
    "Veuillez trouver ci-joint en annexe, une déclaration de projet de travaux concernant :" & "  " & Range("M" & num).Value & " ayant pour objet :" & Range("K" & num).Value & _
    vbCrLf & _
    "Vous en souhaitant bonne réception." & _
    vbCrLf & _
    "Cordialement." & _
    vbCrLf & vbCrLf & _
    "PS : Ce mail est généré automatiquement, merci de ne pas y répondre." & _
    vbCrLf & vbCrLf & _
    "CONSEIL GENERAL DE LA HAUTE GARONNE" & _
    vbCrLf & _
    "Direction de la voirie et des infrastructures" & _
    vbCrLf & _
    "Secteur Routier de MURET" & _
    vbCrLf & _
    "Secrétaire Pôle Aménagement" & _
    vbCrLf & _
    "50 Boulevard de Lamasquère" & _
    vbCrLf & _
    "31600 MURET" & _
    vbCrLf & _
    "Mailto: " & Adr
    Set Outlook = CreateObject("Outlook.Application")
    Set Mail = Outlook.CreateItem(0)
    With Mail
    .To = dest
    .CC = ""
    .BCC = ""
    .Subject = Objet
    .Body = Corps
    Workbooks.Open Filename:= _
    Range("Q" & num).Value
    On Error GoTo 100
    .Attachments.Add ActiveWorkbook.FullName
    ActiveWindow.Close
    Workbooks.Open Filename:= _
    Range("R" & num).Value
    .Attachments.Add ActiveWorkbook.FullName
    On Error GoTo 100
    ActiveWindow.Close
    .Display
    'Mail.PrintOut
    Dim Repertoire, NomExport
    NomExport = Mail.Subject
    Repertoire = Range("U" & num).Value
    'Mail.SaveAs.Filename = Repertoire & "\" & NomExport & ".msg"
    Dim fso, savepath
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(Repertoire & "\") Then MsgBox "Le dossier n''existe pas.", vbCritical, "Error Path"
    Set fso = Nothing
    Savepath = Repertoire & "\" & NomExport & ".msg"
    Mail.SaveAs Savepath, OlSaveAsType.olMSG
    End With
    100
    End Sub

    Cordialement.

  10. #10
    Membre averti Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 324
    Points
    324
    Par défaut
    Bonsoir,

    Remplace par Tu trouveras la liste des constante sur le site microsoft...
    Exemple: http://support.microsoft.com/kb/285202/fr

    Cdlt,
    Les ordinateurs sont inutiles. Ils ne savent que donner des réponses.
    Pablo Picasso

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Remerciements
    Bonjour,
    Je tiens à vous remercier pour l'aide apportée .
    Le problème est donc résolu et encore un énorme merci.
    Très cordialement.

    Regixel.

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

Discussions similaires

  1. connection AS400 depuis Excel Vba
    Par NATOU2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/11/2008, 10h35
  2. Appeler une procédure stockée depuis Excel/VBA
    Par _Nimy_ dans le forum InterBase
    Réponses: 4
    Dernier message: 17/04/2008, 11h17
  3. Supprimer un tableau Powerpoint (PPT) depuis Excel VBA
    Par pontoise dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2008, 19h01
  4. piloter access depuis macro vba dans excel
    Par debmlc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2007, 13h41
  5. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34

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