Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/08/2011, 15h33   #1
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
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 :
MsgBox (MyMail.Attachments.Count)
juste devant
Code :
 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
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 16h08   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Quel code utilise-tu , et comment fait-tu appel à lui ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h03   #3
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
J'utilise ce code :

Code :
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)
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h14   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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..)
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h28   #5
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
Rien ne change

Le attachment count met toujours 0...
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h45   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Je comprends pas j'ai pas ce problème avec ce code :

Code :
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 ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h55   #7
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
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...
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h01   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Je sais pas vérifie s'il s'agit du bon mail :

Code :
1
2
3
 Sub GestionMailsKeybon(Item As Outlook.MailItem)
    MsgBox "New " & Item.Subject & " : " & Item.Attachments.Count
End Sub
je suis sur Outlook 2007..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h03   #9
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
Code :
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...
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h11   #10
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
Oui, c'est le bon mail...

Je vais essayé ton code sur 2007, on sait jamais !!
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h13   #11
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
sur 2002 c'est aussi bon
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h18   #12
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
Et bien... le script
Code :
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" ?
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 19h08   #13
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
Le code initial (mon 2ème post) marche sur outlook 2007.

Dommage pour outlook 2010
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 19h13   #14
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
sous 2010 avec "mon" code tu récupère bien le sujet ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 22h28   #15
Invité de passage
 
Homme Paul
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 16
Points : 0
Points : 0
oui tout à fait.
popaul88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 22h01   #16
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 00h00   #17
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 103
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 103
Points : 8 728
Points : 8 728
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 07h32   #18
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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.
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h26.


 
 
 
 
Partenaires

Hébergement Web