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 :

commande annulé n'annule pas + voir les raccourcies dans la boite de dialogue


Sujet :

VBA Outlook

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut commande annulé n'annule pas + voir les raccourcies dans la boite de dialogue
    Bonjour,

    je revien vers vous car j'ai un petit souci au niveau de ma macro (mineur mais c'est toujours les petits problème les plus agaçant :p )

    le souci est que quand je fais annuler sur ma boite de dialogue parcourir pour selectioner le répertoire de destination ce dernier lance la procédure malgré tout et envoi les mails dans un fichier source de outlook et quand j'envois X mail et que je me dit "a merde j'en est oublier ou ajouter en trop" ben mon reflexe est de cliqué sur annuler et le temps qu'il traitre tout ça j'ai perdu du temps :/. il faudrais donc m'expliquer comment faire pour annulé la suite du programme si je clique sur annulé

    Après c'est pas un problème mais plus une amélioration. dans ma boite parcourir je ne vois pas les racourcie que je créer pour accéder plus rapidement au dossier ou je veux aller y a t-il un moyen d'y remèdier?

    voici le code complet

    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
    Function BrowseForFolder(Title As String) As String
        Dim objShell   As Object
        Dim ssfWINDOWS As Long
        Dim objFolder  As Object
     
        ssfWINDOWS = 36
        Set objShell = CreateObject("Shell.Application")
     
            Set objFolder = objShell.BrowseForFolder(0, Title, 0, ssfWINDOWS)
                If (Not objFolder Is Nothing) Then
                BrowseForFolder = objFolder.self.Path & "\"
                    'Add code here
                End If
            Set objFolder = Nothing
        Set objShell = Nothing
    End Function
     
    Sub sav_mail_as_msg(repertoire As String, Optional objCurrentMessage As Object)
     
        If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
        NomExport = Format$(objCurrentMessage.ReceivedTime, "yymmdd") & " - " & objCurrentMessage.SenderName & " - " & objCurrentMessage.Subject
     
        PathNomExport = repertoire & Left(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace( _
        NomExport, "\", ""), "/", ""), ":", ""), "*", ""), "?", ""), "<", ""), ">", ""), "|", ""), ".", ""), """", ""), vbTab, ""), Chr(7), ""), 160) & ".msg"
        n = 1
        MemPath = PathNomExport
        While Dir(PathNomExport) <> ""
            PathNomExport = Left(MemPath, Len(MemPath) - 4) & "(" & n & ")" & ".msg"
            n = n + 1
     
        Wend
        objCurrentMessage.SaveAs PathNomExport, OlSaveAsType.olMSG
     
    End Sub
     
     
    Sub Save()
        Dim MonOutlook As Outlook.Application
        Dim LeMail As Object
        Dim LesMails As Outlook.Selection
        Dim repertoire As String
        Set MonOutlook = Outlook.Application
     
        Set LesMails = MonOutlook.ActiveExplorer.Selection
        repertoire = BrowseForFolder("Choisissez la destination")
        For Each LeMail In LesMails
           Call sav_mail_as_msg(repertoire, LeMail)
        Next LeMail
     
        Set LesMails = Nothing
        MsgBox "Fin de traitement"
    End Sub
    Merci par avance pour votre aide et vos connaissance

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Si tu annules, la valeur de BrowseForFolder est "" (Function BrowseForFolder) donc il te faut tester si c'est la même valeur pour répertoire (Procédure save) et si tel est le cas, soit demander de sélectionner un répertoire (appel en boucle à BrowseForFolder), soit ne pas faire une partie du traitement suivant.
    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
    Sub Save()
        Dim MonOutlook As Outlook.Application
        Dim LeMail As Object
        Dim LesMails As Outlook.Selection
        Dim repertoire As String
        Set MonOutlook = Outlook.Application
     
        Set LesMails = MonOutlook.ActiveExplorer.Selection
        repertoire = BrowseForFolder("Choisissez la destination")
    if repertoire <> "" Then 
        For Each LeMail In LesMails
           Call sav_mail_as_msg(repertoire, LeMail)
        Next LeMail
     
        Set LesMails = Nothing
        MsgBox "Fin de traitement"
    else 
    msgbox "Pas de répertoire sélectionné"
    end if
    End Sub
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    effectivement cela marche nikel merci!

    par contre pour voir les dossier raccourci que je créer sur mon bureau j'ai trouver ceci
    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
    Function BrowseForFolder(Title As String) As String
        Dim objShell   As Object
        Dim ssfWINDOWS As Long
        Dim objFolder  As Object
     
        Const conReturnOnlyFSDirs = &H1
        Const conNoNewFolderButton = &H200
        Const conBrowseIncludeFiles = &H4000
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, Title, conReturnOnlyFSDirs + conNoNewFolderButton + conBrowseIncludeFiles, ssfWINDOWS)
                If (Not objFolder Is Nothing) Then
                BrowseForFolder = objFolder.Self.Path & "\"
                    'Add code here
                End If
            Set objFolder = Nothing
        Set objShell = Nothing
    End Function
    ceci me permet effectivement de les voirs MAIS pas de les parcourir et encore moi enregistrer dessus après coup je me demande si cela est bien possible d'améliorer

  4. #4
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il faut regarder dans les options de BROWSEINFOStructure sur la MSDN si une option peut correspondre.
    BROWSEINFO Structure
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    ouai y a pas a premiere vus le seul qui pourrai faire cela est la boite "save as" mais impossible de trouver comment en appeller une :/ bon pas grave merci deja pour le "annuler"

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2009, 13h14
  2. Réponses: 15
    Dernier message: 14/05/2008, 09h15
  3. Comment ne pas voir les alertes de Access ?
    Par kaptnkill dans le forum Access
    Réponses: 6
    Dernier message: 12/07/2006, 16h49
  4. Réponses: 2
    Dernier message: 05/05/2006, 14h30
  5. Ne pas voir les liens d'une page !
    Par nicof3 dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 12h22

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