Outlook et la méthode getNext

Outlook et la méthode getNext - VB/VBA/VBS - Programmation

Marsh Posté le 27-06-2005 à 09:26:24    

salut à tous,
 
je viens juste de me mettre sur le VBA outlook.
j'ai quelques notions de VBA pour avoir fait quelques applis pour le taf (appli ACCESS).
 
mon souci :  
je veux rechercher dans mon dossier contacts ("ess" ), les contacts avec la catégorie "tourisme" (voir code) et les copier dans un autre dossier contacts ("test" ).
j'ai fait une petite boucle afin d'identifier les contacts avec la catégorie tourisme. la méthode getfirst me positionne bien sur le 1er contact. le 1er getnext me positionne bien sur le 2éme contact. ensuite, la boucle se poursuit sans jamais passer au suivant.
 
bon, je l'admets C peut être une question de novice ou un bug que je ne connais pas ou le fait que j'ai pas tout mon cerveau ce jour.
merci d'avance
 
le code :
Sub Contact()
 
    Dim myOlApp As Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Dim myFolder, mytest As Outlook.MAPIFolder
    Dim myNewFolder, contfolder As Outlook.MAPIFolder
    Dim esscont, mycopy As ContactItem
    Dim myitem As Items
 
    Set myOlApp = CreateObject("Outlook.Application" )
    Set myNamespace = myOlApp.GetNamespace("MAPI" )
    Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)
    Set mytest = myFolder.Folders.Item("test" )
    Set contfolder = myFolder.Folders.Item("ess" )
     
    Set esscont = contfolder.Items.GetFirst
     
    Do Until esscont Is Nothing
    If esscont.Categories = "tourisme" Then
    Set mycopy = esscont.Copy
    mycopy.Move mytest
    End If
    Set esscont = contfolder.Items.GetNext
    Loop
     
End Sub

Reply

Marsh Posté le 27-06-2005 à 09:26:24   

Reply

Marsh Posté le 28-06-2005 à 23:08:18    

Bonjour,
 
Essaye comme ceci :
 
Sub Contact()
 
    Dim myOlApp As Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Dim myFolder, mytest As Outlook.MAPIFolder
    Dim myNewFolder, contfolder As Outlook.MAPIFolder
    Dim esscont, mycopy As ContactItem
    Dim myitem As Items
 
    Set myOlApp = CreateObject("Outlook.Application" )
    Set myNamespace = myOlApp.GetNamespace("MAPI" )
    Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)
    Set mytest = myFolder.Folders.Item("test" )
    Set contfolder = myFolder.Folders.Item("ess" )
     
    Set myitem = contfolder.Items
    Set esscont = myitem.GetFirst
     
    Do Until esscont Is Nothing
    If esscont.Categories = "tourisme" Then
    Set mycopy = esscont.Copy
    mycopy.Move mytest
    End If
    Set esscont = myitem.GetNext
    Loop
     
End Sub
 
 
pelw
 
 
P.S. Lorsque tu déclares tes variables de cette façon :
 
Dim myNewFolder, contfolder As Outlook.MAPIFolder  
 
seule la variable contfolder sera de type Outlook.MAPIFolder. La variable myNewFolder sera quant à elle de type Variant.  

Reply

Marsh Posté le 29-06-2005 à 11:34:45    

merci fort
ça fonctionne correctement

Reply

Sujets relatifs:

Leave a Replay

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