OVH Cloud OVH Cloud

Voir connectés MSN sur Excel

5 réponses
Avatar
Bonjour,

j'ai une question un peu farfelue que je me posais...

Est-ce possible, si on entre l'adresse MSN d'une personne=20
dans Excel de voir si elle est en ligne?

Je pense pas, mais je demande quand m=EAme! en tout cas=20
celui qui trouve je lui tire un grand coup de chapeau!

5 réponses

Avatar
Laurent Longre
Hello


j'ai une question un peu farfelue que je me posais...

Est-ce possible, si on entre l'adresse MSN d'une personne
dans Excel de voir si elle est en ligne?


Oui avec cette fonction VBA. Ajouter au préalable une référence à la
bibliothèque "Messenger Type Library" (menu Outils => Références) :

' ===============================
Function MSNStatut(Nom As String) As Integer

' L. Longre MPFE
Dim Contact As Messenger.IMsgrUser
With New Messenger.MsgrObject
For Each Contact In .List(0)
With Contact
If LCase(Nom) = LCase(.LogonName) Then
MSNStatut = IIf(.State And 1, 0, 1)
Exit Function
End If
End With
Next Contact
End With
MSNStatut = -1

End Function

Sub Test()

Dim eMail As String
eMail = Application.InputBox("eMail du contact ?", Type:=2)
Select Case MSNStatut(eMail)
Case -1
MsgBox "Contact non trouvé"
Case 0
MsgBox "Contact hors ligne"
Case 1
MsgBox "Contact en ligne"
End Select

End Sub

' ===============================
Bonne chance,

Laurent

Avatar
Starwing
Bravo Laurent! Voici une autre bibliothèque donc je ne connaissais pas
l'existence et qui par surcroît peut être très utile.

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
"Laurent Longre" a écrit dans le message de
news:

Hello


j'ai une question un peu farfelue que je me posais...

Est-ce possible, si on entre l'adresse MSN d'une personne
dans Excel de voir si elle est en ligne?


Oui avec cette fonction VBA. Ajouter au préalable une référence à la
bibliothèque "Messenger Type Library" (menu Outils => Références) :

' =============================== >
Function MSNStatut(Nom As String) As Integer

' L. Longre MPFE
Dim Contact As Messenger.IMsgrUser
With New Messenger.MsgrObject
For Each Contact In .List(0)
With Contact
If LCase(Nom) = LCase(.LogonName) Then
MSNStatut = IIf(.State And 1, 0, 1)
Exit Function
End If
End With
Next Contact
End With
MSNStatut = -1

End Function

Sub Test()

Dim eMail As String
eMail = Application.InputBox("eMail du contact ?", Type:=2)
Select Case MSNStatut(eMail)
Case -1
MsgBox "Contact non trouvé"
Case 0
MsgBox "Contact hors ligne"
Case 1
MsgBox "Contact en ligne"
End Select

End Sub

' =============================== >
Bonne chance,

Laurent



Avatar
Wow! je pensais pas que ca serait possible!

En tout cas je te (vous?) tire mon chapeau! Vraiment
bravo! Je ne l'ai pas encore testée, mais je le ferai chez
moi! Si ca marche vraiment, c'est vraiment extraordinaire!


-----Message d'origine-----

Hello


j'ai une question un peu farfelue que je me posais...

Est-ce possible, si on entre l'adresse MSN d'une
personne


dans Excel de voir si elle est en ligne?


Oui avec cette fonction VBA. Ajouter au préalable une
référence à la

bibliothèque "Messenger Type Library" (menu Outils =>
Références) :


' ========================= =======

Function MSNStatut(Nom As String) As Integer

' L. Longre MPFE
Dim Contact As Messenger.IMsgrUser
With New Messenger.MsgrObject
For Each Contact In .List(0)
With Contact
If LCase(Nom) = LCase(.LogonName) Then
MSNStatut = IIf(.State And 1, 0, 1)
Exit Function
End If
End With
Next Contact
End With
MSNStatut = -1

End Function

Sub Test()

Dim eMail As String
eMail = Application.InputBox("eMail du contact ?",
Type:=2)

Select Case MSNStatut(eMail)
Case -1
MsgBox "Contact non trouvé"
Case 0
MsgBox "Contact hors ligne"
Case 1
MsgBox "Contact en ligne"
End Select

End Sub

' ========================= =======

Bonne chance,

Laurent
.




Avatar
Laurent Longre
Bravo Laurent! Voici une autre bibliothèque donc je ne connaissais pas
l'existence et qui par surcroît peut être très utile.


Moi non plus, je l'ai remarquée tout à l'heure dans la liste des librairies
et... j'ai essayé. :-)

J'ai fait une recherche sur Google et je n'ai pas trouvé grand-chose à part la
doc Microsoft sur MSDN : http://minilien.com/?gjCccnQMNK. D'après eux il vaut
mieux utiliser l'objet Messenger plutôt que MsgrObject, ce qui donne :

(remplacer la référence à "Messenger Type Library" par une référence à
"Messenger API Type Library")

Function MSNStatut(eMail As String) As String

Dim Contact As IMessengerContact
With New MessengerAPI.Messenger
For Each Contact In .MyContacts
If LCase(Contact.SigninName) = LCase(eMail) Then
MSNStatut = IIf(Contact.Status Or MISTATUS_OFFLINE, 0, 1)
Exit Function
End If
Next Contact
End With
MSNStatut = -1

End Function

Sub Test()

Dim eMail As String
eMail = Application.InputBox("eMail du contact ?", Type:=2)
Select Case MSNStatut(eMail)
Case -1
MsgBox "Contact non trouvé"
Case 0
MsgBox "Contact hors ligne"
Case 1
MsgBox "Contact en ligne"
End Select

End Sub

L'objet Messenger dispose d'un évènement OnContactStatusChange qui permet
d'intercepter les connexions ou déconnexions de contacts. C'est vrai que c'est
cool, et il y a pas mal d'autres possibilités. :-)

Laurent

Avatar
Starwing
C'est très très cool!!!

Voila déjà une autre astuce que va s'empresser d'ajouter Misange dans
Excelabo!

Starwing