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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    mai 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : mai 2017
    Messages : 6
    Points : 5
    Points
    5

    Par défaut TimeStamp en macro VBA

    Bonjour,
    Je cherche à faire une macro pour ajouter un "TimeStamp" en début du corps de texte d'un email ou d'une tâche.
    Ca me servira pour faire un suivi...
    Bref, en cherchant j'ai trouvé ce code ci-dessous sur cette page : https://www.outlook-tips.net/tips/in...contact-notes/
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TimeStamp()
        Dim objApp As Outlook.Application
        Dim Item As Object
        Set objApp = Application
        Set Item = objApp.ActiveInspector.CurrentItem
        Item.Body = "[Mon_nom]" & vbCrLf & Format(Now(), "dd/MM/YYYY h:mm:ss") & vbCrLf & vbCrLf & Item.Body
    End Sub

    Ca fonctionne bien... Sauf que ça n'est pas du HTML et que cela supprime la mise en forme du texte qui est déjà contenu dans le corps du message ou de la tâche.
    J'ai déjà essayé de remplacer Item.Body par Item.HTMLBody mais ça ne fonctionne pas.
    Avez-vous une idée ?
    Merci d'avance de votre aide,
    Cordialement,

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 483
    Points : 6 029
    Points
    6 029
    Billets dans le blog
    16

    Par défaut

    Bonjour,

    Voici un exemple

    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
    Sub add_timestamp()
    '---------------------------------------------------------------------------------------
    ' Procedure : add_timestamp
    ' Author    : Oliv
    ' Date      : 28/11/2018
    ' Purpose   : ajout un tampon date en HAUT DU MAIL
    '---------------------------------------------------------------------------------------
    '
        Dim obj As Object
        Dim Oitem As Outlook.MailItem
        Dim MonTexteEnPlus
        Dim OuCommenceAdresse, fin, BaliseBody, NbTiret, Separateur
     
        'choix de l'élément ACTIF
        Set obj = Application.ActiveWindow
        If TypeOf obj Is Outlook.Inspector Then
            Set obj = obj.CurrentItem
        Else
            Set obj = obj.Selection(1)
        End If
     
        If obj.Class <> olMail Then Exit Sub
        Set Oitem = obj
     
     
     
        MonTexteEnPlus = "[Mon_nom]" & "<br>" & Format(Now(), "dd/MM/YYYY h:mm:ss")
     
     
        Select Case Oitem.BodyFormat
            'ici on vérifie le format du message HTML OU BRUT ...
     
        Case olFormatHTML:
            Separateur = "<BR>"
            NbTiret = 45
            OuCommenceAdresse = InStr(1, Oitem.HTMLBody, "<BODY", vbTextCompare)
            If OuCommenceAdresse > 0 Then
                fin = InStr(OuCommenceAdresse + 5, Oitem.HTMLBody, ">") + 1
                BaliseBody = Mid(Oitem.HTMLBody, OuCommenceAdresse, fin - OuCommenceAdresse)
     
                Oitem.HTMLBody = Replace(Oitem.HTMLBody, BaliseBody, BaliseBody & "<font style='font-family: Tahoma ;font-size: 12pt ;color:red;font-style: italic;'>" & MonTexteEnPlus & "</font><BR>" _
                        & "<font style='font-family: Tahoma ;font-size: 12pt ;color:red;font-style: italic;'>" & String(NbTiret, "-") & "</font><BR><BR>", 1, 1, vbTextCompare)
            Else:
                Oitem.HTMLBody = "<font style='font-family: Tahoma ;font-size: 12pt ;color:red;font-style: italic;'>" & MonTexteEnPlus & _
                        "</font><BR>" & "<font style='font-family: Tahoma ;font-size: 12pt ;color:red;font-style: italic;'>" & String(NbTiret, "-") & "</font><BR><BR>" & Oitem.HTMLBody
     
            End If
        Case Else
            Separateur = Chr(10)
            NbTiret = 35
            Oitem.Body = Replace(MonTexteEnPlus, "<br>", vbCr) & Chr(10) & String(NbTiret, "-") & Chr(10) & Chr(10) & Oitem.Body
     
        End Select
     
    Oitem.save
     
        Set obj = Nothing
        Set Oitem = Nothing
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    mai 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : mai 2017
    Messages : 6
    Points : 5
    Points
    5

    Par défaut

    Un grand merci Oliv-
    J'ai néanmoins une dernière question...
    Faut-il que je fasse une macro pour les emails et une macro pour les tâches, ou est-ce possible d'avoir une seule et même macro pour les deux ?

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 483
    Points : 6 029
    Points
    6 029
    Billets dans le blog
    16

    Par défaut

    Il y a effectivement un test fait sur le type d'item

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If obj.Class <> olMail Then Exit Sub
    essaye de changer en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If obj.Class <> olMail  and  obj.Class <>olTask Then Exit Sub
    ou de supprimer cette ligne mais tu risques des erreurs

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    mai 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : mai 2017
    Messages : 6
    Points : 5
    Points
    5

    Par défaut

    Bonjour,
    J'ai essayé les deux méthodes et ça ne fonctionne pas sur les tâches.
    J'ai tout de suite un message d'erreur sur la ligne suivante, à savoir :
    Je pense que c'est lié à la déclaration non ?
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Oitem As Outlook.MailItem
    Faudrait que je mette un IF pour orienter le choix et que j'adapte le code pour Outlook.TaskItem
    Je me trompe ?
    Merci d'avance de votre aide,
    Cordialement,

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 483
    Points : 6 029
    Points
    6 029
    Billets dans le blog
    16

    Par défaut

    Bonjour,
    oui tu as raison

    il faut faire 2 cas car TASK N'a pas de bodyFormat et HTMLBODY

Discussions similaires

  1. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 18h23
  2. Connaître la taille d'un module avec une macro VBA ou autre
    Par beegees dans le forum Général VBA
    Réponses: 15
    Dernier message: 22/11/2005, 10h47
  3. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 11h51
  4. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 17h46
  5. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 10h11

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