3 votes

Y a-t-il un moyen d'ordonner par ordre alphabétique la liste des invités dans une invitation à une réunion Outlook ?

J'ai une invitation à une réunion Outlook avec plus de 40 personnes, mais dans le champ À : de l'onglet de rendez-vous et sur l'onglet Assistant de planification, les personnes apparaissent dans l'ordre où elles ont été ajoutées, pas par ordre alphabétique.

Cela rend difficile de parcourir la liste pour voir si une personne donnée y figure déjà.

Y a-t-il un moyen de classer par ordre alphabétique la liste des personnes invitées à une réunion donnée?

2voto

niton Points 1756

Avec un peu de VBA

Sub Recipients_AppointmentItem()

Dim olAppt As Object
Dim objRecipient As Outlook.Recipient

ReDim namesto(0 To 5) As Variant

Dim I As Long
Dim msg As String

On Error Resume Next

If ActiveInspector.currentItem.Class = olAppointment Then
    Set olAppt = ActiveInspector.currentItem
End If

If olAppt Is Nothing Then
' Pourrait être dans la fenêtre de l'explorateur
    If (ActiveExplorer.selection.Count = 1) And _
      (ActiveExplorer.selection.Item(1).Class = olAppointment) Then
        Set olAppt = ActiveExplorer.selection.Item(1)
    End If
End If

On Error GoTo 0

If olAppt Is Nothing Then
    MsgBox "Problème." & vbCr & vbCr & "Réessayez " & _
      "sous l'une des conditions suivantes:" & vbCr & _
      "-- Vous affichez un unique rendez-vous." & vbCr & _
      "-- Vous avez un seul rendez-vous sélectionné.", _
    vbInformation
    Exit Sub
End If

If olAppt.Recipients.Count > 5 Then
ReDim namesto(0 To olAppt.Recipients.Count)
End If

I = 1
For Each objRecipient In olAppt.Recipients
    If objRecipient = olAppt.Organizer Then
        namesto(I) = objRecipient & " - Organisateur"
    Else
        namesto(I) = objRecipient
    End If

    I = I + 1

Next objRecipient

Call BubbleSort(namesto())

For I = 1 To olAppt.Recipients.Count

If namesto(I) = olAppt.Organizer Then
    namesto(I) = namesto(I) & " - Organisateur"
End If

msg = msg & I & " - " & namesto(I) & vbCr

Next I

CreateMail "Liste des destinataires à partir de " & Maintenant, msg

exitRoutine:
    Set olAppt = Nothing

End Sub

Function CreateMail(fSubject, fMsg)
' Crée un nouvel élément de messagerie

Dim olApp As Outlook.Application
Dim objMail As Outlook.MailItem

Set olApp = Outlook.Application

' Créer un élément de messagerie
Set objMail = olApp.CreateItem(olMailItem)

With objMail
   .Sujet = fSubject
   .Corps = fMsg
   .Afficher
End With

Set olApp = Nothing
Set objMail = Nothing

End Function

Sub BubbleSort(MyArray() As Variant)
'
' http://www.vbaexpress.com/kb/getarticle.php?kb_id=103
'
Dim First           As Integer
Dim Last            As Integer
Dim I               As Integer
Dim j               As Integer
Dim Temp            As String

First = LBound(MyArray) + 1
Last = UBound(MyArray)
For I = First To Last - 1
    For j = I + 1 To Last
        If MyArray(I) > MyArray(j) Then
            Temp = MyArray(j)
            MyArray(j) = MyArray(I)
            MyArray(I) = Temp
        End If
    Next j
Next I

End Sub

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X