IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Sauvegarde piéces jointes


Sujet :

VBA Outlook

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Sauvegarde piéces jointes
    Bonjour !

    J'essaye désespérément d'utiliser le code d'Oliv- pour extraire les PJ lors de l'arrivée de mail (Merci beaucoup d'ailleurs pour tes tutos superbement bien fait ).

    Je sais que le script s'exécute (grace à un msgbox). Le problème, c'est que le script ne détecte pas les PJ des mails : en effet quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox (MyMail.Attachments.Count)
    juste devant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If MyMail.Attachments.Count > 0 Then
    , le msgbox me retourne systématiquement "0"....

    De même que antakini je n'ai pas la librairie Microsoft CDO 1.21 dc j'ai commenté 'typeatt = Isembedded(strID, PJ.Index)...

    Des idées sur la source de mon problème ?



    Ps : je suis sur office 2010

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Quel code utilise-tu , et comment fait-tu appel à lui ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Sub extrait_PJ_vers_rep(strID As Outlook.MailItem)
     
    ' ***olivier CATTEAU***
     
    ' 23 avril 2007
     
        Dim olNS As Outlook.NameSpace
        Dim MyMail As Outlook.MailItem
     
        Dim expediteur
        Set olNS = Application.GetNamespace("MAPI")
        Set MyMail = olNS.GetItemFromID(strID.EntryID)
     
    MsgBox "nouveau message"
     
    MsgBox MyMail.Attachments.Count
     
        If MyMail.Attachments.Count > 0 Then
     
            expediteur = MyMail.SenderEmailAddress
     
            'on crée le répertoire où mettre les fichiers joints ##########################################################
     
            'c:\temp\pj\ doit déjà exister !!!
     
            Repertoire = "C:\Documents and Settings\msi\Bureau\Simulateur BillBox\Test des solutions techniques\Résultats\" & expediteur & "\"
     
            If Repertoire <> "" Then
     
                If "" = Dir(Repertoire, vbDirectory) Then
     
                    MkDir Repertoire
     
                End If
     
            End If
     
            'on traite les pj
     
            Dim PJ, typeatt
     
            For Each PJ In MyMail.Attachments
                'vérification si c'est une PJ Embedded
     
             '   typeatt = Isembedded(strID, PJ.Index)
     
                If typeatt = "" Then
     
                    If "" <> Dir(Repertoire & PJ.FileName, vbNormal) Then
     
                        MsgBox Repertoire & PJ.FileName & " existe !!"
     
                        'si existe copie vers le répertoire old
     
                        If "" = Dir(Repertoire & "old", vbDirectory) Then
     
                            MkDir Repertoire & "old"
     
                        End If
     
                        FileCopy Repertoire & PJ.FileName, Repertoire & "old\" & PJ.FileName
     
                    End If
     
                    PJ.SaveAsFile Repertoire & PJ.FileName
     
                End If
     
            Next PJ
     
            'drapeau vert
     
            MyMail.FlagIcon = olGreenFlagIcon
     
            'Marque lu
     
            MyMail.UnRead = False
     
            MyMail.Save
     
            'on déplace le mail vers un sous dossier outlook
     
         Dim myDestFolder As Outlook.MAPIFolder
     
          Set myDestFolder = MyMail.Parent.Folders("test")
          MyMail.Move myDestFolder
     
        End If
     
        Set MyMail = Nothing
        Set olNS = Nothing
     
    Fin:
     
    End Sub
    Et je fais appel à lui par une règle sur outlook (appliquer un script à tous les messages entrants)

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben le paramètre de cette fonction n'est-il pas déjà un "mail-item.."

    essai de remplacer les lignes 2 à 12 par :
    et dit nous ce qui ce passe .. (au moins pour le Attachments.count..)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Rien ne change

    Le attachment count met toujours 0...

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Je comprends pas j'ai pas ce problème avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Sub GestionMails(Item As Outlook.MailItem)
        MsgBox "New " & Item.Attachments.Count
    End Sub
    les mails que tu transmet ont bien une (ou plusieurs) pièces jointes ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je me suis posé la question : est ce que je mets bien une PJ au mail ?? Je pense que oui, grace au petit trombone qui s'affiche à coté du mail

    Le code proposé renvoie toujours la même chose... 0

    J'utilise outlook 2010. Pas de problème ? J'ai activé les librairies : VBA, outlook, scripting runtime, OLE et office...

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Je sais pas vérifie s'il s'agit du bon mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Sub GestionMailsKeybon(Item As Outlook.MailItem)
        MsgBox "New " & Item.Subject & " : " & Item.Attachments.Count
    End Sub
    je suis sur Outlook 2007..

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub GestionMails2()
        Application.ActiveExplorer.Selection.Item(1).Attachments.Count
        MsgBox "New " & Application.ActiveExplorer.Selection.Item(1).Attachments.Count
    End Sub
    Avec ce code, Attachments.Count marche normalement...

    J'ai essayé de trouver un bout de code pour que les nouveaux messages soient sélectionnés mais j'ai rien trouvé de tel...

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Oui, c'est le bon mail...

    Je vais essayé ton code sur 2007, on sait jamais !!

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    sur 2002 c'est aussi bon

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Et bien... le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Sub GestionMails(Item As Outlook.MailItem)
        MsgBox "New " & Item.Subject & " : " & Item.Attachments.Count
    End Sub
    marche sur outlook 2007 et pas sur outlook 2010... allez savoir pourquoi...

    Je fais quoi maintenant ? Je "downgrade" ?

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Le code initial (mon 2ème post) marche sur outlook 2007.

    Dommage pour outlook 2010

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    sous 2010 avec "mon" code tu récupère bien le sujet ?

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    oui tout à fait.

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Je viens d'installer sur une machine virtuelle la version de démo d'Outlook 2010 .. et le code d'affichage nombre d'attachemnt + Sujet fonctionne sans problème ... sans aucun paramétrages particuliers...

  17. #17
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Citation Envoyé par bbil Voir le message
    Je viens d'installer sur une machine virtuelle la version de démo d'Outlook 2010 .. et le code d'affichage nombre d'attachemnt + Sujet fonctionne sans problème ... sans aucun paramétrages particuliers...
    @ bbil : Sur cette MV Office 2007 était installé ?

    @ popaul88 : Si tu utilise le code complet d'Oliv de la FAQ, celui-ci intègre l'utilisation d'une référence => CDO. Celle-ci n'est pas compatible avec Outlook 2010, dans certains cas si la version 2007 était présente le de réinstaller 2010 peu laisser l'utilisation de cette dll.

    http://support.microsoft.com/kb/2028411/fr

    J'ai testé un peu le code et il semblerait que le nombre de PJ ne remonte pas convenablement. @ bbil : le code fonctionne nickel sur l'arrivée d'1 message ?

    Dolphy

  18. #18
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    oui le code fonctionne à l'arrivé d'un message..

    non je n'avais pas outlook 2007 d'installé mais bien une partie d'office 2007 sur la machine virtuelle et je n'ai installé qu'outlook 2010 sans toucher au autres modules d'office 2007.

Discussions similaires

  1. Sauvegarder pièces jointes avec espaces dans le nom
    Par Ced_Del dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 22/11/2011, 13h05
  2. Sauvegarde pièces jointes et renommer le fichier
    Par grimgrim dans le forum VBA Outlook
    Réponses: 9
    Dernier message: 11/09/2011, 11h15
  3. Sauvegarde des pièces-Joints automatique
    Par benhamidaa dans le forum Outlook
    Réponses: 1
    Dernier message: 31/12/2007, 08h56
  4. sauvegarde de pièce jointe perdue
    Par eaoibub dans le forum Word
    Réponses: 8
    Dernier message: 31/08/2007, 11h41
  5. problème de sauvegarde de pièce jointe Indy 9
    Par QAYS dans le forum Delphi
    Réponses: 8
    Dernier message: 16/03/2007, 18h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo