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 :

.AddAttachment avec variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut .AddAttachment avec variable
    Bonjour,

    Problème : Impossible d'utiliser objMessage.AddAttachment avec une variable.
    Explication : Je possède dans un dossier en local sur mon poste, différents fichiers .pdf de la forme : JJ-MM-AAAA.pdf
    Je souhaiterais envoyer en pièce jointe, le fichier correspond à la date actuelle.
    Exemple : Nous somme le 13-7-2010, je souhaiterais envoyer le fichier en pièce jointe : 13-7-2010.PDF


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim madate
     
    madate = Day(Now) & "-" & Month(Now) & "-" & Year(now)
     
    Set objMessage = CreateObject("CDO.Message")
     
    objMessage.Subject = "test"
    objMessage.From = "@mail"
    objMessage.To = "@mail"
    objMessage.TextBody = "test"
    objMessage.AddAttachment "c:\chemin\" & madate & ".pdf"
     .......
    MERCI

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Je viens de faire le test, aucun soucis pour l'attachment.
    Les seules différences, c'est que par rapport à ton code j'ai bien utilisé une fonction pour la config du serveur SMTP et le chemin du répertoire.

    J'imagine que ce n'est pas ça le soucis mais dans ton explication tu indiques un format de date JJ-MM-AAAA alors que tu n'utilise qu'un caractère pour le mois dans le nom de ton fichier...

    A toute fin utile, voici le code que j'utilise pour la méthode d'envoi de mail par CDO.

    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
    Sub CDOMethod()
     
    Dim Cdo_Message As Object
    Dim madate As String
     
    madate = Day(Now) & "-" & Month(Now) & "-" & Year(Now)
     
    Set Cdo_Message = CreateObject("CDO.Message")
    Const CdoTo = 1
    Const CdoCc = 2
    Const CdoBcc = 3
     
    Set Cdo_Message.Configuration = GetSMTPServerConfig()
        With Cdo_Message
            .To = "LeNom" & Chr(64) & "adresse.com"
            .From = "info" & Chr(64) & "ExcelEtVous.be"
            .Subject = "Le Sujet"
            .HTMLBody = "Le Corps du message" & Cdo_Message.HTMLBody
            .AddAttachment "C:\Documents and Settings\frv\My Documents\" & madate & ".pdf"
            .send
        End With
    Set Cdo_Message = Nothing
    End Sub
     
    Function GetSMTPServerConfig() As Object
    ' Microsoft CDO for Windows 2000 Library
        Const cdoSendUsingPickup = 1
        Const cdoSendUsingPort = 2
        Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
        Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
        Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
     
        Dim Cdo_Config As Object 'New CDO.Configuration
        Set Cdo_Config = CreateObject("CDO.Configuration")
        Dim Cdo_Fields As Object
        Set Cdo_Fields = Cdo_Config.Fields
     
        With Cdo_Fields
            .Item(cdoSendUsingMethod) = cdoSendUsingPort
            .Item(cdoSMTPServer) = "srv-mail.thalys.com" 'Adapter l'adresse SMTP
            .Item(cdoSMTPServerPort) = 25
            .Update
        End With
     
        Set GetSMTPServerConfig = Cdo_Config
        Set Cdo_Config = Nothing
        Set Cdo_Fields = Nothing
     
    End Function
    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut .Addatachment avec variable
    je me suis trompé dans mon code,
    ca marche quand:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    madate = Month(Date) & "-" & Year(Date)
    et ca ne marche plus quand:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    madate = Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
    par contre j'aimerais bien savoir pourquoi le deuxième cas ne marche pas

    MERCI

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Et que te renvoi ActiveWorkbook.name ?

    Est-ce bien ce que tu attends ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    en fait mon ActiveWorkbook.name me renvoit bien le nom de mon fichier mais avec un .XLS.
    c'est ce .XLS qui derrange.


    MERCI

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    J'avoue ne pas (plus) savoir si on peut récupérer directement sans l'extention mais au pire tu peux extraire que ce dont tu as besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomFichier = Mid(ActiveWorkbook.Name, 1, len(ActiveWorkbook.Name) - 4)
    A+

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

Discussions similaires

  1. objMessage.AddAttachment avec pour chemin, une variable
    Par jipechibi dans le forum VBScript
    Réponses: 3
    Dernier message: 07/10/2008, 10h24
  2. Merge avec variables
    Par kluh dans le forum Oracle
    Réponses: 18
    Dernier message: 25/07/2005, 14h31
  3. [AS2] Pb avec variables dans syntaxe
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 05/07/2005, 11h28
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20

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