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 :

Affichage d'une boîte de dialogue en premier plan [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 176
    Points : 95
    Points
    95
    Par défaut Affichage d'une boîte de dialogue en premier plan
    Bonjour,

    J'ai une macro qui permet d'enregistrer des courriels dans des dossiers.

    Elle fonctionne bien sauf que lorsque je fais afficher la fenêtre fileDialog, celle-ci s'affiche derrière Outlook. Elle va se mettre en avant plan si j'exécute la macro à partir de VBA. Comment forcer la fenêtre pour qu"elle soit en premier plan.
    Voici mon 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
     
        ' *********** nouveau code pour avoir les raccourcis
    '  Appelle de la procédure d'affichage:
        BrowseForFolder = BrowseFolderExplorer("Classement de courriel(s)", msoFileDialogViewDetails, SDossier(0, 0))
     
    ....
     
    '  Procédure d'affichage:
    Function BrowseFolderExplorer(Optional DialogTitle As String, _
        Optional ViewType As MsoFileDialogView = _
            MsoFileDialogView.msoFileDialogViewSmallIcons, _
        Optional InitialDirectory As String) As String
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim fDialog  As Office.FileDialog
        Dim varFile As Variant
        Dim ExcelApp
        Set ExcelApp = CreateObject("Excel.application")
        ExcelApp.Visible = False
     
        'ExcelApp.WindowState = -4140
     
        Set fDialog = ExcelApp.FileDialog(msoFileDialogFolderPicker)
        fDialog.InitialView = ViewType
        With fDialog
            If Dir(InitialDirectory, vbDirectory) <> vbNullString Then
                .InitialFileName = InitialDirectory
            Else
                .InitialFileName = CurDir
            End If
            .Title = DialogTitle
     
            If .Show = True Then
                ' user picked a folder
                BrowseFolderExplorer = .SelectedItems(1)
            Else
                ' user cancelled
                BrowseFolderExplorer = vbNullString
            End If
        End With
        ExcelApp.Quit
    End Function
    Merci

  2. #2
    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,
    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
    '====================dans un module standard
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
    Declare Function SetForegroundWindow Lib "user32" _
        (ByVal hwnd As Long) As Long
    Declare Function ShowWindow Lib "user32" _
        (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
     
    ' ShowWindow() Commands
    Public Const SW_HIDE = 0
    Public Const SW_SHOWNORMAL = 1
    Public Const SW_NORMAL = 1
    Public Const SW_SHOWMINIMIZED = 2
    Public Const SW_SHOWMAXIMIZED = 3
    Public Const SW_MAXIMIZE = 3
    Public Const SW_SHOWNOACTIVATE = 4
    Public Const SW_SHOW = 5
    Public Const SW_MINIMIZE = 6
    Public Const SW_SHOWMINNOACTIVE = 7
    Public Const SW_SHOWNA = 8
    Public Const SW_RESTORE = 9
    Public Const SW_SHOWDEFAULT = 10
    Public Const SW_MAX = 10
     
     
    Sub ActiveExcel(hwnd As Long)
     
      If hwnd = 0 Then Exit Sub
      SetForegroundWindow hwnd
      ShowWindow hwnd, SW_SHOWMAXIMIZED
    End Sub
    et dans la macro BrowseFolderExplorer à la ligne 22

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call ActiveExcel(ExcelApp.hwnd)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 176
    Points : 95
    Points
    95
    Par défaut
    Merci.
    Cela a bien marché.

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Exactement le même problème
    Bonjour,

    J'ai exactement le même problème ,seulement je n'arrive pas à le corriger avec votre bout de code

    Voici mon 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
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
     
    Dim fd As Office.FileDialog
    Set fd = xlApp.Application.FileDialog(msoFileDialogFilePicker)
     
    Dim selectedItem As Variant
     
    If fd.Show = -1 Then
        For Each selectedItem In fd.SelectedItems
            Debug.Print selectedItem
        Next
    End If
     
    Set fd = Nothing
        xlApp.Quit
    Set xlApp = Nothing
    Si vous pouviez m'aider, merci

    Flo

  5. #5
    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
    Il faut utiliser la solution donnée 3 réponses au dessus

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

Discussions similaires

  1. Affichage d'une boîte de dialogue prompt pendant un temps déterminé
    Par Abelkims dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2011, 21h36
  2. Réponses: 6
    Dernier message: 14/06/2006, 08h56
  3. [Kylix] Imprimer le contenu d'une boîte de dialogue
    Par cmp-france dans le forum EDI
    Réponses: 13
    Dernier message: 18/10/2003, 20h31
  4. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  5. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59

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