[Macro Outlook] probm migration 2003 > 2007

Résolu/Fermé
Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 - 26 mai 2010 à 16:08
Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 - 1 juin 2010 à 11:00
Bonjour à tous,

J'ai un petit problème avec une macro que j'utilise au boulot, depuis que j'ai migré de outlook 2003 vers outlook 2007.

Pour résumer, la macro en question s'occuper de générer un dossier et un fichier word à partir du mail actuellement sélectionné dans outlook. Le passage qui me pose problème est celui qui parcours les dossiers déjà créés par la macro auparavant.

Extrait de code :
    Dim lo_Fso As FileSystemObject
    Dim lo_Rep_Application As Folder
    Dim ls_Repertoire As String

    ...

    ' création de l'objet système
    Set lo_Fso = New FileSystemObject
    ' positionnement sur le répertoire de l'application
    Set lo_Rep_Application = lo_Fso.GetFolder(ls_Repertoire)
    
    ' pour chaque sous répertoire
    For Each lo_Sous_Rep In lo_Rep_Application.SubFolders
        ...


J'obtiens l'erreur suivante sur la ligne où on tente de faire "GetFolder" : "Erreur 13 : incompatibilité de type".

Je précise que la variable "ls_Repertoire" contient bien une adresse valide (testé en débug).

Auriez-vous une idée de l'origine du problème ? Comment pourrais-je reformuler le code pour qu'il fonctionne sous 2007 ?
A voir également:

1 réponse

Yoskopolite Messages postés 83 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 9 novembre 2012 8
Modifié par Yoskopolite le 1/06/2010 à 11:02
Après divers essais, j'ai trouvé une solution de contournement (même si je ne sais toujours pas pourquoi ça plantais) :

    Dim lo_Fso As FileSystemObject 
    Dim lo_Rep_Application As Object
    Dim ls_Repertoire As String 

    ... 

    ' création de l'objet système 
    Set lo_Fso = New FileSystemObject 
    ' positionnement sur le répertoire de l'application 
    Set lo_Rep_Application = lo_Fso.GetFolder(ls_Repertoire)


Le type retourné par "getobject" semble bien être "Folder", ce qui n'explique pas le plantage d'origine, mais en déclarant mon objet de type folder avec un type plus général, le type object, cela fonctionne très bien.

PS : dommage qu'on ne puisse pas marquer le sujet comme résolu si on l'a résolu par soi-même :D
0