Comment trouver rapidement tous les autres rendez-vous en conflit avec un rendez-vous spécifique dans Outlook

Partage maintenant:

Lorsque vous créez ou modifiez un rendez-vous dans le calendrier Outlook, Outlook vérifie automatiquement s'il existe des rendez-vous en conflit. A ce stade, si vous souhaitez vérifier les conflits, vous pouvez utiliser la méthode présentée dans ce post.

Peut-être avez-vous déjà vu le texte "Conflits avec un autre rendez-vous" lors de la création ou de la modification d'un rendez-vous Outlook. C'est parce qu'Outlook peut vérifier automatiquement les conflits. Cependant, Outlook ne peut pas vous aider à trouver rapidement les conflits grâce à ses fonctionnalités par défaut. Ainsi, nous allons ici vous indiquer une méthode pour générer la fonction de recherche de tous les rendez-vous en conflit.

Découvrez rapidement tous les autres rendez-vous en conflit avec un rendez-vous spécifique dans Outlook

Découvrez tous les autres rendez-vous en conflit avec un rendez-vous spécifique

  1. Au tout début, lancez votre programme Outlook.
  2. Ensuite, dans la fenêtre principale d'Outlook, appuyez sur les touches "Alt + F11".
  3. À la fois, vous accéderez à l'éditeur Outlook VBA, dans lequel vous devez ouvrir un module inutilisé.
  4. Ensuite, copiez le code VBA suivant dans ce module.
Sub FindOutConflictingAppointments()
    Dim objAppointment As AppointmentItem
    Dim dStartTime, dEndTime As Date
    Dim strFilter As String
    Dim objAppointments As Items
    Dim objFoundAppointments As Items
    Dim objItem As AppointmentItem
    Dim i As Long
    Dim strConflicts As String
    Dim strMsg As String
 
    Select Case Application.ActiveWindow.Class
           Case olExplorer
                Set objAppointment = Application.ActiveExplorer.Selection(1)
           Case olInspector
                Set objAppointment = Application.ActiveInspector.CurrentItem
    End Select
 
    dStartTime = objAppointment.start
    dEndTime = objAppointment.End
 
    Set objAppointments = Application.ActiveExplorer.CurrentFolder.Items
 
    i = 1
 
    '1: Find all appts whose end time within the start and end time of source appt
    strFilter = "[End] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '2: Find all appts occurring within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '3: Find all appts whose start time within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [Start] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '4: Find all appts cover the entire source appt
    strFilter = "[Start] <= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] >= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
  
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    strMsg = i - 1 & " Conflicting Appointments:" & vbCrLf & vbCrLf & strConflicts
    MsgBox strMsg, vbInformation + vbOKOnly, "Check Conflicts"
End Sub

Code VBA - Découvrez tous les autres rendez-vous en conflit avec un rendez-vous spécifique

  1. Après cela, vous pouvez quitter la fenêtre actuelle.
  2. Ajoutez ensuite cette macro à la barre d'outils d'accès rapide comme d'habitude.
  3. Plus tard, vous devez également vous assurer que les macros sont activées dans votre Outlook. Allez simplement dans "Paramètres macro" pour le vérifier.
  4. Enfin, vous pouvez essayer.
  • Tout d'abord, sélectionnez ou ouvrez un rendez-vous, dans lequel il y a une invite "Conflits avec un autre rendez-vous".
  • Cliquez ensuite sur le bouton macro dans la barre d'outils d'accès rapide.
  • Immédiatement, vous recevrez un message répertoriant tous les rendez-vous en conflit, illustrés par la capture d'écran suivante :Message qui répertorie tous les rendez-vous en conflit

Précautions essentielles avant la corruption d'Outlook

Il est connu qu'Outlook est susceptible de planter et de subir des erreurs. Ainsi, il est nécessaire de bien se préparer à la corruption d'Outlook. L'un d'euxost précautions essentielles est la sauvegarde périodique. De plus, il est suggéré de préparer un puissant médicament spécialisé Réparation Outlook outil, comme DataNumen Outlook Repair.

Introduction de l'auteur:

Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris récupération mdf et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com

Partage maintenant:

Les commentaires sont fermés.