Changer de compte en fonctions de critères [VBA-Outlook] - VB/VBA/VBS - Programmation
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.
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é...
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
je patauge depuis des jours sans y arriver
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