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 :

Règle sur le jour de réception du mail [OL-2007]


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut Règle sur le jour de réception du mail
    Bonjour,

    Voila j'ai vu que l'on pouvait créer une règle avec pour paramètre la date de réception des mails. Le problème est qu'il faut entrer une fourchette de date et moi seulement les jours m’intéressent.
    Je m'explique:
    si le mail est reçu entre le mardi et le samedi inclus alors j'extrais la pièce jointe sinon je peux supprimer le mail.
    J'ai codé en vba l'extraction de pièce jointe . Le script est appelé via une règle sur le destinataire et l'objet du mail.
    Je voudrais rajouter ma condition sur les jours soit dans la règle (ce qui me parait impossible) soit dans le code vba mais là c'est le flou total.
    Si quelqu'un peut me donner un coup de main?

    Merci beaucoup,

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Je pense que la fonction WeekDay() doit répondre à ta demande.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    oui j'ai déjà regardé cette fonction, mais comment récupérer la date de mon mail?
    j'ai essayé ceci pour récupérer la date de mon mail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     DateRecep = MyMail.CreationTime
    et ensuite pour tester du mardi au vendredi je pensais plutot a cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Weekday(laDate, vbTuesday) < 6 Then

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    La date de réception du mail c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyMail.receivedTime

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    bon ca marche par contre je rencontre un autre problème.

    1/ Je vérifie que la date de réception du mail est entre mardi et samedi => OK

    2/Si c'est le cas, j'enregistre les pièces jointes => OK

    3/et je lance ma macro Excel en passant en paramètres la date de réception => La je n'y arrive pas.
    je lance excel via cette ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    proc = Shell("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE /cmd/DateExcel C:\projets\test_pegase.xlsm", vbNormalFocus)
    autant le lancement excel marche et le lancement de la macro à l'ouverture d'excel aussi par contre il ne récupère pas le paramètre.
    Dans le 'ThisWorkbook' de mon fichier Excel j'ai ajouté un bout de code pour récupérer les paramètres mais impossible, voici le code dans mon excel
    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
     
    Private Sub Workbook_Open()
    Dim macmdline As Variant
    Dim monparam As Variant 'déclare une variable
     
    macmdline = GetCmd 'affecte la valeur de la ligne de commande
        If Not IsNull(macmdline) Then 'si la variable est nulle
            If Len(macmdline) > 0 Then 'on s'assure qu'il y a eu une ligne de commande passée
                If InStr(macmdline, "/cmd") > 0 Then
                    macmdline = Replace(macmdline, ThisWorkbook.FullName, "", , , vbTextCompare)
                    monparam = Split(macmdline, "/cmd")
                    Debug.Print Mid(monparam(1), 2, Len(monparam(1)) - 3)
                End If
            End If
        End If
    Bouton1_Clic
    End Sub

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Il faut "sortir" la variable de la chaine de caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    proc = Shell("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE /cmd/" & DateExcel & "C:\projets\test_pegase.xlsm", vbNormalFocus)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    en fait je trouve des solutions où l'on passe en paramètre une valeur précise.
    Par exemple si je voulais tout le temps récuperer la date du 07/07, je pourrais mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    proc = Shell("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE /cmd/20170707 C:\projets\test_pegase.xlsm", vbNormalFocus)
    Le fait de vouloir récupérer une variable de mon code ca ce n'est pas possible, c'est cela?
    Je n'ai donc aucun moyen de faire ça?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    Désolé je n'avais pas vu ta réponse.

    J'ai fais ce que tu as dis et en fait ca ne lance pas mon fichier excel. Ca lance excel et ouvre un nouveau fichier. Ca ne prend en compte que le premier paramètre finalement du shell.

  9. #9
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    tu peux faire autrement, en ouvrant ton fichier de macro et en lançant la macro avec des parametres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             Set wbExcel = appExcel.Workbooks.Open(Repertoire & "MACRO_EDI_ado.xls")
            Set wsExcel = wbExcel.Worksheets(1)
            wbExcel.Activate
            appExcel.WindowState = xlMaximized
            appExcel.Run wbExcel.Name & "!ouverture", Left(CStr(Date), 10)
    et dans la macro j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function ouverture(Optional DateRecu As Date)
    ...
    end function

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    j'ai trouvé, il fallait juste un espace supplémentaire après le troisième guillemet.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2010] Utiliser les régles sur uen autre mail box que la sienne?
    Par EmmanuelleC dans le forum Outlook
    Réponses: 3
    Dernier message: 04/06/2015, 17h48
  2. [Débutant] flux de travail, envois mails sur x jours
    Par virion dans le forum Configuration
    Réponses: 2
    Dernier message: 23/10/2012, 20h40
  3. Mise à jour Exchange> Problème réception de mail externe
    Par vit_grp dans le forum Exchange Server
    Réponses: 1
    Dernier message: 24/04/2009, 18h46
  4. Réception de mail sur SharePoint 3
    Par rob81 dans le forum SharePoint
    Réponses: 2
    Dernier message: 02/04/2008, 11h22

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