Macro : Erreur pour vider la mémoire (Set ... = Nothing)

roidurif

XLDnaute Occasionnel
Bonjour,

Je n'arrive pas à vider ou decharger de la mémoire l'objet "MonNum" de ma macro.

Un message apparait "erreur de compilation : Objet requis." sur la ligne :

Code:
Set MonNum = Nothing

je ne vois pas ce qui manque.

Merci pour votre aide


Code:
Option Explicit
Option Compare Text
 
 
Sub Essai()
	Extraction "En attente", "a.l@gmail.com"
    
End Sub
 
 
Sub Extraction(NomDossier As String, Expediteur As String)
    Dim olApp As Outlook.Application
    Dim olSpace As Outlook.NameSpace
    Dim olFolder As Outlook.MAPIFolder
    Dim myDestFolder As Outlook.Folder
    Dim OLinbox As Outlook.MAPIFolder
    Dim olMail As Outlook.MailItem
    Dim pceJointe As Outlook.Attachment
    Dim MonBody As String
    Dim MonNum As String
    Dim y As Integer, x As Integer
    Dim nom As Variant




    
    Dim y As Integer, x As Integer
    Dim nom As Variant
    
    Set olApp = New Outlook.Application
    Set olSpace = olApp.GetNamespace("MAPI")
    Set OLinbox = olSpace.GetDefaultFolder(olFolderInbox)
    Set olFolder = OLinbox.Folders(NomDossier)
    
    For Each olMail In olFolder.Items
        If olMail.SenderEmailAddress = Expediteur And _
            Not olMail.Attachments.Count = 0 Then
            
            For y = 1 To olMail.Attachments.Count
                 Set pceJointe = olMail.Attachments(y)
                 x = x + 1

' Recherche de 500 dans le corps du message
        MonBody = olMail.Body

        On Error Resume Next
        MonNum = Mid(MonBody, InStr(1, MonBody, "500") + 0, 8)
        On Error GoTo 0
                'If MonNum = Empty Then
                If Left(MonNum, 3) <> "500" Then
            MsgBox "Numéro 500 non trouvé"
        Else


                pceJointe.SaveAsFile "C:\Documents\" & MonNum & "-" & pceJointe

                Set pceJointe = Nothing

		Set MonNum = Nothing

            Next y
        
End If
	End If

    Next olMail
 
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Macro : Erreur pour vider la mémoire (Set ... = Nothing)

Bonjour roidurif,

MonNum est une variable String, et donc ce n'est pas une variable Objet

Code:
Set MonNum = Nothing

ne peut être exécuté que sur une variable Objet

Les variables String sont rarement vidées en fin de code, car beaucoup moins gourmandes, mais pour le faire il faudrait quelque chose comme

Code:
MonNum = ""
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 153
dernier inscrit
SamirN