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 :

boite de dialogue, à l'envoi d'un message, demandant de choisir s'il faut crypter le message


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut boite de dialogue, à l'envoi d'un message, demandant de choisir s'il faut crypter le message
    Bonjour,

    Je cherche à créer une macro sous Outlook 2013 (et/ou 2016) qui au moment de l'envoi d'un message, ouvre une boîte de dialogue demandant à l'expéditeur de classifier le message (choix exclusif entre 4 possibilités "C=0", "C=1", "C=2", ou "C=3").
    Si l'expéditeur choisi "C=3", ou "C=4", le message envoyé doit être chiffré.
    En fonction du choix de l'expéditeur, un texte personnalisé est ajouté dans le message (en bas avant la signature).

    J'utilise déjà une macro pour ranger le message envoyé, à l'endroit validé par l'expéditeur au moment de l'envoi (à l'envoi, ouverture d'une boîte de dialogue demandant à l'expéditeur de choisir le dossier de rangement de l'email envoyé).

    J'aimerai bien combiner les 2 fonctions.

    J'imagine que c'est possible, mais ne maîtrise pas VBA Outlook.

    Des idées ?

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    C'est peut être plus possible, au stade de l'envoi, de modifier le contenu ou de chiffrer le message ??

  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
    Bonjour,
    Il faut utiliser l'Événement Application.ItemSend () dans ThisOutlookSession
    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
     
     
    Private Sub application_ItemSend(ByVal Item As Object, Cancel As Boolean)
     
     Dim prompt As String
     
     prompt = "Are you sure you want to send " & Item.Subject & "?"
     
     If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
     
     Cancel = True
     
     End If
     
    End Sub

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour la tentative,
    Mais cela ne fonctionne pas : "erreur de syntaxe" sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prompt = "Are you sure you want to send " & Item.Subject & "?"
    Je suis loin d'être expert aussi, faut dire

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prompt = "Are you sure you want to send " & Item.Subject & "?"

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Oui cela corrige le problème de la macro : merci.

    Par contre on est loin du compte, car MSGBOX ne semble pas permettre de faire autre chose que "OUI" ou "NON", alors que je souhaite faire un choix entre 4 ou 5 propositions (toujours les mêmes).
    Ensuite en fonction du choix effectué, je souhaite lancer la commande de chiffrage du message en cours d'envoi
    l'équivalent VBA de l'appui sur le bouton :Nom : Captureee.JPG
Affichages : 444
Taille : 13,5 Ko

    Enfin, je souhaite modifier l'objet du message envoyé (ajout d'une chaine de caractères entre crochets, en début d'Objet) en fonction du choix effectué dans la boîte de dialogue.

    Merci pour l'aide .

  7. #7
    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
    Bonjour,

    Que souhaites tu vraiment? un programme clef en main ? ce n'est pas l'objectif d'un forum, par contre tu peux me contacter en MP si c'est le cas.


    Tu dis que tu utilises déjà un programme pour classer, peux tu en publier le code ? car à priori il devrait aussi utiliser l'événement application_itemsend()

    donc il faudra combiner les 2

    Si tu veux avoir plusieurs options tu dois utiliser un userform -->https://silkyroad.developpez.com/VBA/UserForm/



    pour déclencher le cryptage tu devras utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item.GetInspector.CommandBars.ExecuteMso ("EncryptMessage")
    où item est ton Email

    pour signer numériquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item.GetInspector.CommandBars.ExecuteMso ("DigitallySignMessage")

    pour changer le sujet/object du mail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    item.subject="[abc]" & item.subject
    item.save

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci Oliv-

    Tu viens de me donner tous les éléments dont je devrai avoir besoin, je n'ai plus qu'à essayer.

    Ce n'est pas un programme dont j'ai besoin, mais d'une fonctionnalité manquante dans MS Outlook.
    C'est déjà le cas pour le rangement des messages envoyés dans un dossier "à la demande" de l'expéditeur. Je viens d'ailleurs de m'apercevoir que la macro qui me permet de le faire depuis 2-3 ans est de toi .
    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
    '############################################
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
     
    'By Oliv' 9/02/2007 pour Outlook 2007
    If Not Item.Class = olMail Then GoTo fin
     
        Dim objNS As NameSpace
        Dim objFolder As MAPIFolder
     
                Set objNS = Application.GetNamespace("MAPI")
                Set objFolder = objNS.PickFolder
                If TypeName(objFolder) = "Nothing" Then
                    Set objNS = Application.GetNamespace("MAPI")
                    Set objFolder = objNS.GetDefaultFolder(olFolderSentMail)
                End If
            Set Item.SaveSentMessageFolder = objFolder
    fin:
    End Sub
    Je vais faire des essais avant de revenir en discuter ici.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bon, j'ai créé un UserForm que je souhaite afficher lors de l'envoi d'un message :
    Nom : Capturrre.JPG
Affichages : 438
Taille : 28,3 Ko


    Et j'ai écris cela dans "ThisOutlookSession" :
    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
    '############################################
    Private Sub application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    UserForm1.Show
     
    'Fermeture de l'UserForm si appui sur le bouton "annuler"
    If CommandButton2 = Enter Then Unload UserForm1
    End If
     
    'Détermination du choix enregistré, lors de l'appui sur "OK"
    If CommandButton1 = Enter Then
     
    Private Sub ValidChoice_Click()
     
        Dim choice As String
     
        If OptionButton1 = True Then
            choice = Perso
        Else
     
        If OptionButton2 = True Then
            choice = Libre
        Else
     
        If OptionButton3 = True Then
            choice = Interne
        Else
     
        If OptionButton4 = True Then
            choice = Restreint
        Else
     
        If OptionButton5 = True Then
            choice = Confidentiel
        End If
     
     'Chiffrage du message si restreint ou confidentiel
     If choice = "Restreint" Or "Confidentiel" Then Item.GetInspector.CommandBars.ExecuteMso ("EncryptMessage")
     End If
     
     'Ajout de la classification dans l'objet du message
     Item.Subject = "[" & choice & "] " & Item.Subject
    Item.Save
     Cancel = True
     
    End Sub
    Evidemment cela ne fonctionne pas, et je n'ai pas ajouté le bout de macro permettant de choisir où enregistrer le message envoyé.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Utilisateur

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonsoir, je n'ai pas avancé d'un pouce, qui peut m'aider ?

  11. #11
    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
    Bonjour,
    Il faudrait commencer par les bases du VBA


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If CommandButton1 = Enter Then
     
    Private Sub ValidChoice_Click()
     
        Dim choice As String
     
        If OptionButton1 = True Then
            choice = Perso
    https://dolphy35.developpez.com/article/outlook/vba/
    https://www.developpez.net/forums/bl.../debogage-vba/


    tu peux aussi consulter les tuto EXCEL, le principe est le même seuls les objets changent.

    https://laurent-ott.developpez.com/t...el-vba-tome-1/

Discussions similaires

  1. export d'un message de boite de dialogue dans excel
    Par piere42 dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/03/2009, 11h52
  2. UML et boite de dialogue message dans netbeans 5
    Par bambi98 dans le forum NetBeans
    Réponses: 0
    Dernier message: 19/02/2009, 11h42
  3. Réponses: 1
    Dernier message: 28/08/2007, 12h09
  4. Envoi d'une boite de dialogue ou Popup
    Par papepapis dans le forum ASP.NET
    Réponses: 4
    Dernier message: 27/08/2007, 15h05
  5. message dans une boite de dialogue
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/12/2006, 17h06

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