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

Outlook Discussion :

Rechercher email dans une plage horaire ou plage de jours


Sujet :

Outlook

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Rechercher email dans une plage horaire ou plage de jours
    Bonjour à tous,

    Je cherche comment faire une recherche dans outlook 2013 par plage horaire ou sur un ou des jours précis mais impossible de mettre la main sur cette fonction... Quelqu'un aurait il la solution ou une astuce ?

    Précisément, je souhaite récupérer tous mes emails envoyés les weekends sur les 3 dernières années ainsi que tous les emails envoyés de 19h à 6 heures du matin sur les 3 dernières années.

    Please help ! ça fait déjà deux jours que je cherche !

  2. #2
    Candidat au Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut moi aussi ...
    comment créer une colonne Heure qui contiendrait l'heure d'envoi d'un mail sur Outlook 2013 ?
    pour ensuite faire un filtre sur cette colonne et trouver les mails envoyés entre 18 heures et 9 heures, sur tout un fichier pst.
    merci

  3. #3
    Candidat au Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Suite à une petite recherche ...
    Bonjour,

    J'ai codé ça en VBA :

    Dim myItem As Object
    Dim HeureSoir As Date
    Dim HeureMatin As Date

    'initialisation des valeurs horaires matin et soir
    HeureSoir = Format("17:30:00", "hh:mm:ss")
    HeureMatin = Format("9:30:00", "hh:mm:ss")

    'on teste si cet objet a été créé entre l'horaire du soir et l'horaire du matin (quelque soit le jour)
    If (Format(myItem.CreationTime, "hh:mm:ss") >= HeureSoir Or Format(myItem.CreationTime, "hh:mm:ss") <= HeureMatin) Then
    'ici traitement à faire ...
    End If

    Mais ce que je cherche à faire c'est coder un Restrict sur la colonne CreationTime et seulement sur l'HEURE de création du message.. et je n'y arrive pas ! petit faux amis, la colonne se nomme CreationTime mais comporte DATE et HEURE de création ...
    J'ai essayé plusieurs syntaxes - par exemple sur le test après HeureSoir='17:30:00' mais sans succès :
    Restrict("[CreationTime] >= '17:30:00'")
    ou cela Restrict("[Mid(CreationTime,12,8)] >= '17:30:00'")
    ou cela Restrict ("[CreationTime] >= ' & Format("17:30:00", "hh:mm:ss")")

    Lorsque je trace la valeur en debug, j'obtiens cela comme valeur par exemple CreationTime : #16/01/2013 18:43:34#
    Avez vous déjà réussi ?
    merci

  4. #4
    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
    Salut,

    Voici une solution mixant vba et recherche avancée.
    Il faut lancer Add_Time_on_sent_Email , qui permettra de choisir le dossier Parent initial, c'est une fonction récursive,
    Mieux vaut essayer sur un petit dossier avant, ATTENTION comme on fait un "save" cela modifie la "date de dernier modification" du Mail (Champ "Modifié")

    Dans la recherche avancée il faut aller sur l'onglet Options avancées et choisir les champs créés avec la macro dans le menu déroulant "Champ"/"Champs définis par l'utilisateur dans le dossier".

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    Sub Add_Time_on_sent_Email()
    '---------------------------------------------------------------------------------------
    ' Procedure :
    ' Author    : OCTU
    ' Date      : 16/06/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
        Dim oFolder As Outlook.Folder
        Dim objNS As NameSpace
        'Get a Folder object
        Set objNS = Application.GetNamespace("MAPI")
        Set oFolder = objNS.PickFolder
        ProcessFolderTIME oFolder, True
     
        MsgBox "terminé"
    End Sub
     
     
    Sub ProcessFolderTIME(StartFolder As Outlook.MAPIFolder, SubFolder As Boolean)
    '---------------------------------------------------------------------------------------
    ' Procedure : ProcessFolderSize
    ' Author    : OCTU
    ' Date      : 16/06/2015
    ' Purpose   : Fonction recursive pour obtenir la taille des Dossiers
    '---------------------------------------------------------------------------------------
    '
        Dim objFolder As Outlook.MAPIFolder
        Dim Filter As String
        Dim oRow As Outlook.Row
        Dim oTable As Outlook.table
        Dim oFolderSize As Double
        Dim item As MailItem
        'Dim objItem As Object
        On Error Resume Next
     
        ' process all the subfolders of this folder
        For Each objFolder In StartFolder.folders
            Call ProcessFolderSize(objFolder, SubFolder)
        Next
     
        ' process all the items in this folder
        For Each objitem In StartFolder.items
            If obitem.Class = olMailItem Then
     
                Set item = objitem
                Call ItemsAdd_time(item)
            End If
        Next
     
        Set objFolder = Nothing
    End Sub
     
    Private Sub ItemsAdd_time(item As MailItem)
    '---------------------------------------------------------------------------------------
    ' Procedure : ItemsAdd_time
    ' Author    : OCTU
    ' Date      : 23/06/2015
    ' Purpose   : ajout de propriétés sur les emails
    '---------------------------------------------------------------------------------------
    '
        Dim Props As Outlook.UserProperties
        Dim Prop As Outlook.UserProperty
        Dim PropName As String
        Dim Prop1 As Outlook.UserProperty
        Dim PropName1 As String
     
        PropName = "HeureEnvoi"
        PropName1 = "NUIT"
     
        Dim heure As Date
        Dim Heuremax As Date
        Dim HeureMin As Date
        '###########ICI ON PARAMETRE LES HORAIRES DE FERMETURE##########################################
        Heuremax = TimeSerial(17, 30, 0)
        HeureMin = TimeSerial(9, 30, 0)
        '###############################################################################################
        heure = TimeSerial(Hour(item.SentOn), Minute(item.SentOn), Second(item.SentOn))
     
        Set Props = item.UserProperties
        Set Prop = Props.Find(PropName, True)
        If Prop Is Nothing Then
            Set Prop = Props.add(PropName, olDateTime, True)
        End If
        Prop.value = Format(item.SentOn, "hh:mm")
     
        Set Prop1 = Props.Find(PropName1, True)
        If Prop1 Is Nothing Then
            Set Prop1 = Props.add(PropName1, olYesNo, True)
        End If
        Prop.value = Format(item.SentOn, "hh:mm")
     
     
        If heure >= Heuremax Then
            Prop1.value = True
        ElseIf heure <= HeureMin Then
            Prop1.value = True
        Else
            Prop1.value = False
        End If
        item.Save
    End Sub
    Sinon il doit y avoir une autre solution sans modifier les Emails avec "restrict" et les "tables", cela dépend aussi de ce que tu veux faire du résultat.

Discussions similaires

  1. [XL-2010] VBA Pointeur - Recherche Données dans une plage
    Par Coxtox dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/04/2015, 09h37
  2. [XL-2010] RechercheV, plage de recherche contenu dans une cellule
    Par gandalf20000000 dans le forum Excel
    Réponses: 1
    Dernier message: 27/12/2011, 15h26
  3. [Oracle] Recherche nulle dans une base et affichage
    Par GLDavid dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2006, 01h01
  4. Recherche Element dans une liste
    Par hellodelu dans le forum ASP
    Réponses: 7
    Dernier message: 19/08/2005, 10h56
  5. Rechercher minuscule dans une table
    Par pmonn dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2004, 14h53

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