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 :

Fermer une boite de dialogue OUTLOOK avec VBA


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Comptable
    Inscrit en
    Février 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Février 2024
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Fermer une boite de dialogue OUTLOOK avec VBA
    Hello,

    C'est mon premier post ici, je suis totalement débutant en programmation etc.
    J'aimerai assigner des taches à des personnes de mon boulot automatiquement, ca aucun problème j'ai réussis à me débrouiller.
    Le problème c'est la boite de dialogue finale sur outlook.
    Ci dessous mon code:

    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
    Sub CreerTacheOutlook()
     
        Dim appOutlook As Outlook.Application
        Dim objTache As Outlook.TaskItem
        Dim myDelegate As Outlook.Recipient
     
        ' Créer une instance de l'application Outlook
        Set appOutlook = New Outlook.Application
     
        ' Créer un nouvel objet TaskItem (tâche)
        Set objTache = appOutlook.CreateItem(3) ' 3 correspond à olTaskItem
        objTache.Assign
        Set myDelegate = objTache.Recipients.Add("NOM1")
        myDelegate.Resolve
        Set myDelegate = objTache.Recipients.Add("Nom 2")
        myDelegate.Resolve
     
     
        With objTache
            .Subject = "Tâche importante"
            .Body = "Description détaillée de la tâche." & vbCrLf & _
                    "Ceci est une description détaillée ajoutée au corps de la tâche." & vbCrLf & _
                    "Vous pouvez ajouter autant de détails que nécessaire ici."
            .StartDate = Date + TimeValue("10:00:00") ' Date et heure de début
            .DueDate = Date + 1 + TimeValue("17:00:00") ' Date et heure de fin
            .Importance = 2 ' 2 correspond à olImportanceHigh
            .ReminderSet = True ' Activer la notification de rappel
            .ReminderTime = .StartDate ' Temps de rappel (même que la date de début)
     
     
            ' Afficher la fenêtre de la tâche
            objTache.Display
     
            objTache.Send
     
        End With
     
    End Sub
    ci dessous le message que je souhaite gérer automatiquement

    Nom : Capture.PNG
Affichages : 67
Taille : 45,1 Ko

    Merci d'avance!

    Jason

  2. #2
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 235
    Points : 316
    Points
    316
    Par défaut
    Hello,

    façon "gros cochon"
    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
    Sub CreerTacheOutlook()
     
        Dim appOutlook As Outlook.Application
        Dim objTache As Outlook.TaskItem
        Dim myDelegate As Outlook.Recipient
     
        ' Créer une instance de l'application Outlook
        Set appOutlook = New Outlook.Application
     
        ' Créer un nouvel objet TaskItem (tâche)
        Set objTache = appOutlook.CreateItem(3) ' 3 correspond à olTaskItem
        objTache.Assign
        Set myDelegate = objTache.Recipients.Add("NOM1")
        myDelegate.Resolve
        Set myDelegate = objTache.Recipients.Add("Nom 2")
        myDelegate.Resolve
     
     
        With objTache
            .Subject = "Tâche importante"
            .Body = "Description détaillée de la tâche." & vbCrLf & _
                    "Ceci est une description détaillée ajoutée au corps de la tâche." & vbCrLf & _
                    "Vous pouvez ajouter autant de détails que nécessaire ici."
            .StartDate = Date + TimeValue("10:00:00") ' Date et heure de début
            .DueDate = Date + 1 + TimeValue("17:00:00") ' Date et heure de fin
            .Importance = 2 ' 2 correspond à olImportanceHigh
            .ReminderSet = True ' Activer la notification de rappel
            .ReminderTime = .StartDate ' Temps de rappel (même que la date de début)
     
     
            ' Afficher la fenêtre de la tâche
            objTache.Display
     
    SendKeys ("{ENTER}")
    
            objTache.Send
     
        End With
     
    End Sub
    (à tester)
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Comptable
    Inscrit en
    Février 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Février 2024
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci!
    Alors ca fonctionne, mais tu pourrais m'expliquer pourquoi il faut le mettre avant le send, et pas après?
    J'avais essayé cette solution, mais en ajoutant SendKeys ("{ENTER}") après le .Send, car pour moi la fenêtre apparraissait après et non avant.

    Merci encore!


    EDIT: ah non ca marche pas j'ai parlé trop vite... j'avais fait des tests hier soir et je les ai pas enlevé ce matin

    J'ai toujours l'erreur

  4. #4
    Membre averti Avatar de Nain porte koi
    Homme Profil pro
    a
    Inscrit en
    Novembre 2023
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : a

    Informations forums :
    Inscription : Novembre 2023
    Messages : 235
    Points : 316
    Points
    316
    Par défaut
    Ca à fonctionné hier soir et pas ce matin ?
    Quand vous dites "j'ai toujours l'erreur" c'est la boite de dialogue ou autre chose ?

    Le sendkeys à un comportement assez aléatoire, en fait si quelque chose le perturbe ou vient s'afficher avant ce qu'on attend de lui ça déraille, d'où ma réponse "mode gros cochon"
    En fait il faudrait être sur à 100% que c'est bien la boite de dialogue "Cette demande de tâche..." qui est affiché

    Un paramètre supplémentaire existe avec le sendkeys : SendKeys ("{ENTER}", True)
    voir ici pour plus d'explication https://learn.microsoft.com/fr-fr/of...keys-statement

    Pourquoi avant et pas après : parce que une fois que la fenêtre est ouverte l'instruction suivante attend qu'elle soit fermée pour s'exécuter.

    Une autre solution serait d'utiliser les API, je sais qu'il est possible de vérifier que c'est bien telle boite de dialogue qui est au premier plan et d'y envoyer des touches, mais je ne sais pas faire.
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

Discussions similaires

  1. Comment fermer une boite de dialogue automatiquement en VBA ?
    Par Peerl dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/01/2020, 14h18
  2. Fermer une boite de dialogue avec plusieurs boutons
    Par floctc dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 03/02/2010, 09h31
  3. fermer une boite de dialogue
    Par trax44 dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 09/01/2008, 22h56
  4. Réponses: 10
    Dernier message: 25/10/2007, 14h40
  5. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59

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