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

Macros et VBA Excel Discussion :

xlsxm outlook, chercher une boite rattachée [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Par défaut xlsxm outlook, chercher une boite rattachée
    bonjour à tous,
    Le sujet à déjà été posé je pense, mais je ne comprends pas bien le fonctionnment de l'autoumation XL / outlook. Je fais une statistique journalière des mails envoyés à chaque personne de mon équipe + des mails envoyés en dehors de l'équipe d'une boite génerique, ainsi que que des éléments supprimés (déjà traités). j'ai grace à ce site merveilleux, pu effectuer cette opération avec ce code, mais je pointe sur la boite native et non sur la boite generique, et je ne comprends pas comment pointer d'une part sur les éléments envoyés depuis la boite générique rattachée, et sur les éléments supprimés de cette même boite (le reste du code la statistique sous xls ne me pose aucun problème, mais c'est VBA/outlook, que je ne maitrise pas) merci de votre aide, Cdlt, Nico :
    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
    Public Sub CompSentMail()
     
        Dim olApp As Outlook.Application
         Dim i As Integer
        Dim Criteria
        Dim BoiteE
        Dim ObjBoite As Recipient
        Criteria = Format(InputBox("Quelle date ?" & Chr(13) & Chr(13) & "Au format jj/mm/aaaa", "Date de traitement"), "dd/mm/yyyy")
     
        ThisWorkbook.Worksheets("Compil").Range("C1").Formula = Criteria
     
        Set olApp = New Outlook.Application
       Set BoiteE = olApp.GetNamespace("MAPI").GetDefaultFolder(5)
     
    i = 1
     With ThisWorkbook.Worksheets("Mail")
     
    .Cells.Delete Shift:=xlUp
     
     
    For Each o_mailitem In BoiteE.Items
    If Format(o_mailitem.CreationTime, "dd/mm/yyyy") = Criteria Then
     
     .Range("A" & i) = o_mailitem.To
      i = i + 1
        End If
     Next
     
     
     
     End With
    If OutlookApp_Cree Then OutlookApp.Quit
     
    Application.ScreenUpdating = True
     
    Set O_Dossier = Nothing
    Set O_NomDomaine = Nothing
    Set OutlookApp = Nothing
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    SAlut,

    tu peux parcourir toutes les BAL avec une boucle for each sur les folder du namespace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub piou()
    'code sous outlook
    'a adapter donc ;)
    Dim objNS As Outlook.NameSpace
    Dim objFolder As Outlook.MAPIFolder
    Set objNS = GetNamespace("MAPI")
    For Each objFolder In objNS.Folders
        Debug.Print objFolder.Name
    Next
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ajoute à la remarque de Jean-Philippe que pour isoler des mails répondant à un critère, on peut filtrer la collection des mails d'un dossier via Restrict()

    exemple ici : https://www.developpez.net/forums/d1...k/#post8971053

    il ne reste plus qu'à récupérer le nombre d'éléments via la propriété .Count de cette collection, sans aucune boucle

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    j'ajoute à la remarque de Jean-Philippe que pour isoler des mails répondant à un critère, on peut filtrer la collection des mails d'un dossier via Restrict()

    exemple ici : https://www.developpez.net/forums/d1...k/#post8971053

    il ne reste plus qu'à récupérer le nombre d'éléments via la propriété .Count de cette collection, sans aucune boucle
    Bonjour Joe
    Le soucis c'est que je n'ai pas de critère (seule la date compte, mais ça c'est bon) et que je ne veux pas compter le nombre d'Email envoyé à chaque personne (ça c'est gérer en VBA Excel dans une autre partie de mon code. c'était juste le fait de pointer sur la bonne boite qui me posait problème, par contre la
    Set BoiteE = olApp.GetNamespace("MAPI").GetDefaultFolder(5)
    correspond aux éléments envoyés, pour les éléments suprimés vous savez quel est son n° ? (enfin c'est juste pour remercier, je vais trouver par moi-même sinon). Merci

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Toutes les valeurs disponibles ici
    https://msdn.microsoft.com/fr-fr/lib.../ff861868.aspx

    pour les elements supprimes = 3
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Toutes les valeurs disponibles ici
    https://msdn.microsoft.com/fr-fr/lib.../ff861868.aspx

    pour les elements supprimes = 3
    Merci !!!

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Pourtant, tu te paluches l'ensemble d'un dossier pour trouver ceux correspondant à une date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each o_mailitem In BoiteE.Items
    If Format(o_mailitem.CreationTime, "dd/mm/yyyy") = Criteria Then
     
     .Range("A" & i) = o_mailitem.To
      i = i + 1
        End If
     Next
    Or, ma proposition te permet de n'avoir QUE la collection des mails répondants à ce critère
    derrière, tu fais un bête boucle sur cette collection et tu récupère le .To de chaque item

  8. #8
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Pourtant, tu te paluches l'ensemble d'un dossier pour trouver ceux correspondant à une date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each o_mailitem In BoiteE.Items
    If Format(o_mailitem.CreationTime, "dd/mm/yyyy") = Criteria Then
     
     .Range("A" & i) = o_mailitem.To
      i = i + 1
        End If
     Next
    Or, ma proposition te permet de n'avoir QUE la collection des mails répondants à ce critère
    derrière, tu fais un bête boucle sur cette collection et tu récupère le .To de chaque item
    Ah oui en effet je n'avais pas compris ça comme ça, je suis "dure de la feuille" dès qu'il s'agit d'outlook merci et désolé encore

  9. #9
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 25
    Par défaut merci
    Merci Jean-philippe,
    oui, bloqué par outlook, j'ai oublié les principes de base de VBA...
    Merci encore, bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter une boite partagée sur un client Outlook
    Par joe.levrai dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 15/02/2016, 10h07
  2. Réponses: 3
    Dernier message: 05/07/2011, 17h36
  3. Réponses: 1
    Dernier message: 21/12/2007, 12h22
  4. Réponses: 3
    Dernier message: 02/10/2006, 16h45
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

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