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 :

[OL 365] Nettoyer un message d'avertissement incorporé en tête de corps d'email de tous les emails reçus


Sujet :

VBA Outlook

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : mai 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [OL 365] Nettoyer un message d'avertissement incorporé en tête de corps d'email de tous les emails reçus
    Bonjour,

    Je n'ai pas trouvé les mots pour vérifier si le sujet existait déjà.

    Mon service IT impose désormais un encadré incorporé en tête du corps de texte de tous les emails reçus par une personne extérieure,
    en gras, fond jaune fluo

    Nom : image outlook.jpg
Affichages : 55
Taille : 84,4 Ko

    C'est tout simplement une horreur à la longue, ma boite email ne ressemble plus à rien, pollution et fatigue visuelle, et en plus lorsqu'on répond à son correspondant, il faut supprimer à la main cet encadré car sinon il le reçoit aussi dans l'historique de conversation.

    Est-ce que cela vous parait possible avec du VBA de supprimer automatiquement cet encadré ou via un raccourci ?

    Je suis novice sur du VBA pour Outlook, confirmé sur du VBA pour Excel

    Merci par avance pour vos conseils et suggestions

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    novembre 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : novembre 2021
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Bonjour.

    Je te suggère un code qui:
    -boucle sur tous les objets mails de ta boîte au lettre
    -recherche dans le corps de chaque Item le texte (qui est une constante) et l'élimine

    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
    On Error GoTo Catch_error
    Set objOL = New Outlook.Application
    Set objNS = objOL.GetNamespace("MAPI")
     
    For Each oAccount In objOL.Session.Accounts
        If oAccount.DisplayName = "ton mail" Then
            Set objFolder = oAccount.DeliveryStore.GetDefaultFolder(olFolderInbox)
     
            For Each myItem In objFolder.Items
     
    			'On vérifie que l'object est bien un mail
    			On Error GoTo Catch_nomail
    			bolMail = True
    			Set oMail = objNS.GetItemFromID(strIds(lggItemActual))
    			On Error GoTo Catch_error
    			If bolMail = true then
    				With oMail
                                       HTMLBody = replace(.HTMLBody, strTexteARemplacer,"",1) 
                                       .Save
    				End With
    			End if
    			Set oMail=Nothing
     
    		Next
        End If
    Next oAccount
     
    Exit sub
    Catch_nomail:
    	bolMail = False
    	resume next
    Catch_error:
    	'Procédure de traitement de l'erreur
    	Exit sub
    Si la fonction Replace ne marche pas (je n'ai pas testé), tu devras passer par une recherche de la position du texte dans le HTMLBody (Instr).

    Bonne chance.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : mai 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci Korkal pour cette réponse.

    Où est-ce que je dois insérer le texte à remplacer dans le code ?

    Il faut peut être que je me documente un peu à propos de HTMLBody ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : mai 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Quand je fais une résolution pas à pas, ça bloque sur le terme strIds ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    novembre 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : novembre 2021
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Désolé, j'ai répondu sans doute trop vite.

    Je te joins le code rectifié, avec les déclarations de variables.
    1. N'oublie pas de déclarer en "références" la librairie MICROSOFT OUTLOOK OBJECT LIBRARY (je travaille avec la 16; code non testé avec d'autres)
    2. Remplace "tonmail" par ta dirección email
    3. Remplace "tontexteHTML" par le texte que tu veux systématiquement supprimé. Attention ce doit être exactemente le code HTML.

    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
    Dim objOL As Outlook.Application
    Dim oAccount As Outlook.Account
    Dim objFolder As Outlook.MAPIFolder
    Dim myItem As Object
    
    On Error GoTo Catch_error
    Set objOL = New Outlook.Application
    
    For Each oAccount In objOL.Session.Accounts
        If oAccount.DisplayName = "tonmail" Then
            Set objFolder = oAccount.DeliveryStore.GetDefaultFolder(olFolderInbox)
            For Each myItem In objFolder.Items
                'On vérifie que l'object est bien un mail
                    With myItem
                        On Error GoTo Catch_nomail
                        .HTMLBody = Replace(.HTMLBody, "tontexteHTML", "", 1)
                        .Save
                        On Error GoTo Catch_error
                    End With
            Next
        End If
    Next oAccount
     
    Exit Sub
    Catch_nomail:
        Resume Next
    Catch_error:
        'Procédure de traitement de l'erreur
        Exit Sub

Discussions similaires

  1. Supprimer message d'avertissement windows
    Par Ps4 dans le forum Access
    Réponses: 16
    Dernier message: 07/10/2005, 10h48
  2. message d'avertissement
    Par Art19 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/07/2005, 12h01
  3. message d'avertissement "unchecked call"
    Par mavina dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/04/2005, 16h04
  4. Message d'avertissement requete de mise à jour
    Par Buffiere dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2005, 11h20
  5. [Kylix] Message d'avertissement GPL Kylix OE
    Par fred78 dans le forum EDI
    Réponses: 5
    Dernier message: 30/11/2002, 14h12

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