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

VBA Outlook Discussion :

Une macro pour compter le nombre de pièces jointes dans outlook 2007


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Une macro pour compter le nombre de pièces jointes dans outlook 2007
    bonjour à tous
    j'ai bien quelques petites connaissances en VBA sur excel mais là pour outlook je suis un peu perdu
    je ne connais pas les evennement ni le nom des objets
    donc je sollicite votre aide
    j'envoie régulièrement au même destinataire exemple (mon_destinataire@gmail.com) un mail contenant une ou plusieurs pièces jointes (au format PDF)
    j'aimerais que dans le corps du message apparaisse le nombre de pièces jointes
    exemple: 4 fichiers joints
    j'aimerais aussi que dans sujet soit inscrit (pointages du au ) avec la possibilité de remplir les blancs
    sinon mieux mais surement plus complexe à mettre en oeuvre que les dates correspondantes soient inscrites automatiquement
    les pièces jointes sont nommées par une date
    exemple
    vendredi 15 novembre 2013.pdf samedi 16 novembre 2013.pdf mardi 12 novembre 2013.pdf
    ce qui donnait dans sujet: pointages du 12/11 ou 16/11/2013
    cette macro devrait pouvoir se lancer sur le bouton "envoyer"
    merci pour votre aide

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,
    voici un exemple pour récupérer le nom des pj dans le corps du Mail.
    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
    Public Sub Liste_PJ_20131118()
     'insère le nom des PJ dans le corps du message
     
        Dim Courrier As MailItem
        Dim NomsPJ As String
     
        Dim NbPJ As Integer
        Dim i As Integer
        Dim pj As Attachment
        Dim Separateur As Variant
        Dim NbTiret As Integer
     
        If Application.ActiveInspector Is Nothing Then Exit Sub
     
        Set Courrier = ActiveInspector.CurrentItem
        If Courrier Is Nothing Then Exit Sub
     
        Select Case Courrier.BodyFormat
        Case olFormatHTML:
            Separateur = "<BR>"
            NbTiret = 45
        Case olFormatPlain:
            Separateur = Chr(10)
            NbTiret = 35
        Case Else
            Separateur = " - "
            NbTiret = 50
        End Select
     
        NbPJ = Courrier.Attachments.Count
     
        For i = NbPJ To 1 Step -1
            Set pj = Courrier.Attachments(i)
                 NomsPJ = NomsPJ & Separateur & "- " & pj.FileName
        Next
     
        Select Case Courrier.BodyFormat
        Case olFormatHTML:
     
            OuCommenceAdresse = InStr(1, Courrier.HTMLBody, "<BODY", vbTextCompare)
            If OuCommenceAdresse > 0 Then
                fin = InStr(OuCommenceAdresse + 5, Courrier.HTMLBody, ">") + 1
                BaliseBody = Mid(Courrier.HTMLBody, OuCommenceAdresse, fin - OuCommenceAdresse)
     
                Courrier.HTMLBody = Replace(Courrier.HTMLBody, BaliseBody, BaliseBody & "<font style='font-family: Tahoma ;font-size: 8pt ;color:#808080;font-style: italic;'>" & NomsPJ & "</font><BR>" _
                                                                         & "<font style='font-family: Tahoma ;font-size: 8pt ;color:#808080;font-style: italic;'>" & String(NbTiret, "-") & "</font><BR><BR>", 1, 1, vbTextCompare)
            Else: Courrier.HTMLBody = "<font style='font-family: Tahoma ;font-size: 8pt ;color:#808080;font-style: italic;'>" & NomsPJ & _
                                      "</font><BR>" & "<font style='font-family: Tahoma ;font-size: 8pt ;color:#808080;font-style: italic;'>" & String(NbTiret, "-") & "</font><BR><BR>" & Courrier.HTMLBody
     
            End If
        Case Else
            Courrier.Body = NomsPJ & Chr(10) & String(NbTiret, "-") & Chr(10) & Chr(10) & Courrier.Body
     
        End Select
     
     
        ' A activer pour enregistrer automatiquement les modifs
        'Courrier.Save
     
     
    End Sub
    Pour ta période il faut transformer tes noms de fichiers en dates dans un tableau par exemple et prendre le mini et le maxi pour alimenter ton sujet (Courrier.subject)

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Si tu veux que ta macro s'execute à l'envoi, il faut utiliser l'évenement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
    end sub
    Mais il faut ajouter des tests pour qu'elle ne s'exécute pas à chaque Email envoyé , comme le nom du destinataire ou le sujet...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    bonjour
    merci pour ta proposition
    même si ce n'est pas exactement ce que je cherchais à réaliser, je vais l'adopter ne serait-ce pour comprendre comment fonctionne les macros sur outlook
    il me manque l'essentiel, le test pour que la macro ne fonctionne que sous une adresse bien définie ou alors je vais inclure une msgbox en début de code pour demander si je veux activer la macro ou pas

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,
    On ne peut pas tout avoir clef en main !
    Il faut aussi chercher soi même
    Le plus simple c'est de faire un test sur le sujet tu mets un sujet bidon dans ton mail, puis lorsque tu cliques sur envoyer ta macro le détécte puis le change.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if not courrier.subject like "*¤¤MAMACRO¤¤*" then exit sub
     
    '...
     courrier.subject = "le sujet que j'ai choisi d'envoyer"
     
    courrier .save

Discussions similaires

  1. Macro pour compter le nombre de fois qu'apparait un mot dans une feuille
    Par arno1975 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/02/2014, 09h27
  2. Réponses: 8
    Dernier message: 20/06/2012, 15h07
  3. [XL-2007] MACRO pour compter le nombre des fichiers sur le serveur FTP
    Par kinkichin dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/07/2011, 18h09
  4. [AC-2000] Création d'une requête pour compter le nombre de ok dans une ligne
    Par yassine06 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/05/2010, 16h10
  5. Réponses: 1
    Dernier message: 16/10/2008, 23h17

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