Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment active la ref en VBA Microsoft Office Communicator

4 réponses
Avatar
Velosona
Bonjour,
je veux faire extraire l'information de mon messenger vers excel

voici le code que je trouve dans net mais il y de probleme sur CommunicatorAPI.IMessengerConversationWndAdvanced

Sub sendIM()
Dim msgr As CommunicatorAPI.IMessengerConversationWndAdvanced
Dim ToUser As String
Dim message As String
Application.ScreenUpdating = False
ToUser = "someone@somewhere.com"
message = "test vba communicator"
On Error Resume Next
Set msgr = Messenger.InstantMessage(ToUser)
'Send message to window
msgr.SendText (message)
msgr.Close
Application.ScreenUpdating = True
End Sub

4 réponses

Avatar
Geo
Bonjour
Vous n'êtes pas très bavard sur le problème rencontré.

Avez-vous installé Microsoft Office Communicator 2007 SDK
et l'avez-vous référencé dans vbe ?
Avatar
MichD
Bonjour,

As-tu Lync de Microsoft installé sur ton ordinateur?
Téléchargement possible ici :
https://www.microsoft.com/fr-fr/download/details.aspx?id5451

À cette adresse, tu as un exemple de code :

https://vbaninja.wordpress.com/excel/how-to-send-an-instant-message-from-excel-using-communicator/

Copie du code proposé de cette adresse, voire le fil du message...
'------------------------------------------

and paste the following code in the module1
———————————————————-
Sub TimerApp()

dTime = Now + TimeValue(“00:05:00”) ‘ this code is to automate running
of the status for every 5MIN u can change according to ur convinence,
and point 2 after runnig once this code it will run all the time even if
ur excel is closed (to stop running for nxt time commetn out the dtime
line.:)
With Application
.OnTime dTime, “TimerApp”
.ScreenUpdating = True
.EnableEvents = True
Sheet1.showContacts
End With
‘Other Code to run at this point
End Sub
——————————————————
Paste the below in the sheet1 macro coding window
——————————————————–
Sub showContacts()
Dim p As CommunicatorAPI.Messenger
Dim s As CommunicatorAPI.IMessengerContacts
Dim t As CommunicatorAPI.IMessengerContact
Dim o As CommunicatorAPI.IMessengerContact

Sheet1.Cells.ClearContents

Dim w As String
Dim v As Long
v = 1
w = “”
Set p = CreateObject(“Communicator.UIAutomation”)
p.AutoSignin
Set s = p.MyContacts

Dim b As Workbook
Dim sh As Worksheet
Set b = ActiveWorkbook
Set sh = b.Sheets(1)
sh.Activate
sh.Cells(1, 1).Select

For v = 1 To s.Count – 1
Set o = s.Item(v)
additem_in_sheet v, o.FriendlyName, o.Status

‘sh.Cells(v, 1).Value = o.FriendlyName
‘sh.Cells(v, 2).Value = CStr(o.Status)
Next v

update_sheet2

End Sub

Public Function GetStatus(I As Integer) As String
Dim str As String
Select Case I
Case 1
str = “Offline”
Case 2
str = “Online”
Case 6
str = “Invisible”
Case 10
str = “Busy”
Case 14
str = “Be Right Back”
Case 18
str = “Idle”
Case 34
str = “Away”
Case 50
str = “On the Phone”
Case 66
str = “Out to Lunch”
Case Else
str = “Unknown”
End Select

GetStatus = str
End Function

Sub additem_in_sheet(irow As Long, name As String, stat As Integer)

Sheet1.Cells(irow, 1) = name
Sheet1.Cells(irow, 2) = GetStatus(stat)
Sheet1.Cells(irow, 3) = Time
Sheet1.Cells(irow, 4) = Date
Sheet1.Cells(irow, 5) = DatePart(“ww”, Date, vbMonday, vbFirstFourDays)
Sheet1.Cells(irow, 6) = Month(Date)
Sheet1.Cells(irow, 7) = Year(Date)
Sheet1.Cells(irow, 8) = Day(Date)
Sheet1.Cells(irow, 9) = Hour(Time)
‘Sheet1.Cells(irow, 10) = Minute(Time)
End Sub

Sub update_sheet2()

Dim x As Long
For x = 2 To 65536
If Sheet2.Cells(x, 9) = Empty Then
empty_row = x – 1
Exit For
End If
Next x

Dim irow2 As Long
For j = 1 To 200
Sheet2.Cells(empty_row + j, 1) = Sheet1.Cells(j, 1)
Sheet2.Cells(empty_row + j, 2) = Sheet1.Cells(j, 2)
Sheet2.Cells(empty_row + j, 3) = Sheet1.Cells(j, 3)
Sheet2.Cells(empty_row + j, 4) = Sheet1.Cells(j, 4)
Sheet2.Cells(empty_row + j, 5) = Sheet1.Cells(j, 5)
Sheet2.Cells(empty_row + j, 6) = Sheet1.Cells(j, 6)
Sheet2.Cells(empty_row + j, 7) = Sheet1.Cells(j, 7)
Sheet2.Cells(empty_row + j, 8) = Sheet1.Cells(j, 8)
Sheet2.Cells(empty_row + j, 9) = Sheet1.Cells(j, 9)

Next j

End Sub
——————————————————-
Thats all
now in sheet 1 u will find the current timestamp contact status
and sheet2 is ur database..

make sure that ur MS office communicator is logged in

thanks
Naveen kumar.M

'--------------------------------------------------------------


MichD
Avatar
velosona
Le jeudi 07 Avril 2016 à 08:47 par Geo :
Bonjour
Vous n'êtes pas très bavard sur le problème
rencontré.

Avez-vous installé Microsoft Office Communicator 2007 SDK
et l'avez-vous référencé dans vbe ?


Bonjour
Merci de votre conseil.
Je déjà essai avec Microsft Lync2013 mais j'avais de problem sur adress de connection
Alors je essai de cherche Microsoft Office Communicator
Salutation
Velosona
Avatar
MichD
Bonjour,

Je ne peux pas tester cette procédure puisque "Linc" n'est pas installé
sur mon ordinateur. Cependant, cette procédure doit être adaptée selon
ton environnement.

A ) Tout le code ne doit pas être copié dans le même module. As-tu suivi
les recommandations de l'auteur de la procédure?

B ) Dans la procédure, on fait référence à Sheet1. Sheet1 n'est pas le
nom de l'onglet de la feuille, mais le nom de l'objet "Worksheet" dans
l'interface VBA. Exemple. La liste des feuilles du classeur ressemble à
ceci :Sheet1(Sheet1)
Sheet2(sheet2)
Le nom entre parenthèses "(sheet1)" est le nom de l'onglet de la feuille
de calcul et "Sheet1" est le nom de la propriété de l'objet Worksheet de
la feuille de calcul en VBA. Il ne faut pas mêler les 2.

C ) Dans cette ligne de code :
additem_in_sheet v, o.FriendlyName, o.Status
de la procédure "Sub showContacts", est-ce possible que
o.FriendlyName représente le nom du contact et non son adresse de
courriel? As-tu essayé?

D ) Tu aurais pu indiquer quelle ligne de code te pose problème? Il
aurait été plus facile de répondre...

Bon courage!

MichD