[VBA-Outlook] Changer de compte en fonctions de critères

Changer de compte en fonctions de critères [VBA-Outlook] - VB/VBA/VBS - Programmation

Marsh Posté le 23-07-2009 à 15:22:11    

Bonjour,
 
Je cherche à changer de compte au moment de l'envoi d'un mail.
Google (qui est mon amis ;) ) me donne toujours la meme chose :  
Dans la fonction  

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)


 
Appeler une fonction, mais qui ne fonctionne pas, cette fonction n'a pas l'air de faire son office

 Set CBP = CBs.FindControl(, ID_ACCOUNTS)


du coup l'objet est vide, et le reste de la fonction sert à rien en gros, du coup.
 
Ma question est : Vous sauriez comment changer un compte au moment de l'envoi ?
Merci d'avance  :jap:  
je patauge depuis des jours sans y arriver  :sweat:  
 


 
Function Set_Account(ByVal AccountName As String, M As Outlook.MailItem) As String
 
Dim OLI As Outlook.Inspector
Dim strAccountBtnName As String
Dim intLoc As Integer
Const ID_ACCOUNTS = 31224
Dim CBs As Office.CommandBars
Dim CBP As Office.CommandBarPopup
Dim MC As Office.CommandBarControl
 
Set OLI = M.GetInspector
If Not OLI Is Nothing Then
    Set CBs = OLI.CommandBars
    Set CBP = CBs.FindControl(, ID_ACCOUNTS)
     
    'If Not CBP Is Nothing Then
    CBP.Reset
    'End If
     
    If Not CBP Is Nothing Then
        MsgBox "Hello"
        For Each MC In CBP.Controls
            intLoc = InStr(MC.Caption, " " )
            If intLoc > 0 Then
                strAccountBtnName = Mid(MC.Caption, intLoc + 1)
            Else
                strAccountBtnName = MC.Caption
            End If
            If strAccountBtnName = AccountName Then
                MC.Execute
                Set_Account = AccountName
                GoTo Exit_Function
            End If
        Next
    End If
End If
Set_Account = ""
Exit_Function: Set MC = Nothing
Set CBP = Nothing
Set CBs = Nothing
Set OLI = Nothing
End Function

Reply

Marsh Posté le 23-07-2009 à 15:22:11   

Reply

Marsh Posté le 27-07-2009 à 15:20:08    

:bounce: , au cas où...

Reply

Marsh Posté le 28-07-2009 à 20:03:43    

Je n'ai malheureusement pas de solution à t'apporter, mais quand je bloque comme dans ton cas, j'essaye d'énumérer les différentes "valeurs" que peuvent prendre tel ou tel objet (ici l'account). Concrètement, j'essayerais de trouver une procédure qui listerait l'ensemble des comptes outlook, et puis, à l'aide du débogueur et de la fenêtre variables, j'essayerais de comprendre comment ça marche et par conséquent ce qui ne va pas dans ton code.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 29-07-2009 à 08:53:03    

Oui, là je suis d'accord, mais le problème c'est que jusqu'au code qui plante, il n'y a aucune partie où une variable sur laquelle je puisse agir entre en jeu.
Je n'arrive d'ailleurs pas à lister l'ensemble des comptes outlook, je trouve d'ailleurs bizarre que la fonction utilise le "nom" du compte.
:'(
 
Edit : Et du coup,je suis super emmerdé...


Message édité par tuxbleu le 29-07-2009 à 08:53:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed