par , 30/04/2015 à 09h36 (1825 Affichages)
Bonjour,
Pour progresser en VBA il est nécessaire de connaitre les fonctions de débogage.
Le mode Pas à pas, les espions, la fenêtre exécution, la fenêtre des variables Locales.
Le mode pas à pas ne retourne pas forcement d'erreur, il permet d’exécuter chaque instruction avec une pause pour voir ce qui se passe.
Les vrais erreurs feront stopper le code même sans cela !
Par contre ça permet de voir si un test ou une boucle se fait bien et on peut consulter les variables locales et/ou mettre des espions.
Voici en images
Je vous conseille de lire ces articles ils ne sont pas forcément propre à Outlook mais une grosse partie du VBA est commune à l'ensemble d'office.
http://cafeine.developpez.com/access...ebugprint/#LIV
http://silkyroad.developpez.com/VBA/DebuterMacros
http://dolphy35.developpez.com/article/outlook/vba/
Etant donné qu'Outlook ne comporte pas d'enregistreur de Macro il est plus simple de retrouver le nom de la "propriété" en parcourant les valeurs visibles soit dans
la fenêtre des variables Locales (il faut donc déclare une variable), soit avec les espions et les points d'arrêt.
Voici comment faire, avec l'Email en cours
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Sub babaEmail()
'---------------------------------------------------------------------------------------
' Procedure : babaEmail
' Author : oliv
' Date : 22/04/2015
' Purpose :
'---------------------------------------------------------------------------------------
'
Dim Oitem As Object
Dim objMail As Outlook.MailItem
Dim i
Set Oitem = ActiveInspector.CurrentItem 'désigne l'élément actif càd le mail le contact ou rdv...
If Oitem.Class = olMail Then
'ici on fait un STOP pour continuer en pas à pas
Set objMail = Oitem
STOP
'############ ici vous pouvez ouvrir la fenetre varaible locales et parcourir ObjMAIL#######
' continuez avec F5 ou F8 en pas à pas
Debug.Print objMail.subject
Debug.Print objMail.SenderName & " <" & objMail.SenderEmailAddress & ">"
Debug.Print objMail.To
Debug.Print objMail.Cc
Debug.Print objMail.Bcc
Debug.Print objMail.ReceivedTime
Dim pj As String
pj = ""
'ici on fait un STOP pour continuer en pas à pas
STOP
For i = 1 To objMail.Attachments.Count
pj = objMail.Attachments(i).FileName & ";"
Next i
Debug.Print pj
Debug.Print objMail.Body
'Debug.Print objMail.HTMLBody
End If
End Sub |