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

Macros et VBA Excel Discussion :

[Excel] - Tester si une application externe est active.


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut [Excel] - Tester si une application externe est active.
    Re le forum,

    Il y a quelques mois, Bbil (principalement), silkyroad et caféïne m'avaient apporté de l'aide dans ce post:
    http://www.developpez.net/forums/sho...1&postcount=16

    Il s'agissait d'ouvrir et de fermer une application externe à Windows.

    Je voudrais désormais savoir s'il y avait moyen de tester si cette application externe est ouverte ou non.

    Si oui, comment l'activer?

    Donc 2 questions:

    - comment tester
    - comment l'activer si elle est ouverte

    Dans le but d'écrire un code de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Application.Opened Then
    Activate Application
    Else Shell
    End If
    Un grand merci à celui qui n'aura pas peur de passer du temps, à moyen que ce ne soit plus simple qu'il n'y paraît.

  2. #2
    Expert éminent


    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
    Par défaut
    ben toujours la ... :

    Comment lister les processus actifs sans utiliser l'API Windows (Win2000 et >) ?

    ton application externe .. apparaît-elle dans la liste généré par le debug.print ( fenêtre exécution CTRL G)

  3. #3
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Le problème, est qu'une fois qu'on entre là dedans, j'ai beaucoup de mal.

    Bon, j'ai essayé, il me crée bien une liste de tous les processus dont mon application en question mais elle apparaît aussi bien ouverte que fermée.

    Mais à partir de toute cette liste, comment écrire dans mon code:
    Si application ouverte l'activer (la faire venir au 1er plan). ?

    Bon, je continue à scruter cette FAQ mais j'aurai vraiment besoin d'aide, c'est pas de la mauvaise fois.

    Merci bbil

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu connais le nom du processus que tu veux détecter alors ce code devrait t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ProcessusActifs()
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process"
        For Each oproc In svc.execQuery(sQuery)
            Debug.Print oproc.Name
            If oproc.Name = "Excel.exe" Then MsgBox oproc.Name & " est actif !"
        Next
        Set svc = Nothing
    End Sub
    Je ne sais plus à qui je dois ce code. S'il peut te servir, je ne l'aurai pas gardé pour rien
    A+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Salut

    Citation Envoyé par Chewi
    - comment l'activer si elle est ouverte
    Si par activer tu entends mettre au premier plan à l'écran voici quelles lignes qui pourraient t'aider


    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
     
    Option Explicit
     
    Private Declare Function BringWindowToTop Lib "user32" _
    (ByVal hwnd As Long) As Long
     
    Private Declare Function ShowWindow Lib "user32" _
    (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Const SW_SHOWNORMAL = 1
     
    Private Sub AfficherHlp()
    'Met au premier plan la fenetre
    'mots clé : api fenêtre au premier plan
    'Source : http://www.developpez.net/forums/archive/index.php/t-190139.html
    'Auteur : Silky Road
     
    'activer la référence "Microsoft Internet Controls"
    ' !!!! Ne fonctionne pas si exection depuis VBE, executer via  un bouton, ou barre VBA!!!!
     
    Dim IE As New InternetExplorer
    Dim winShell As New ShellWindows
    Dim x As Long
     
    On Error Resume Next
    For Each IE In winShell
    If IE.LocationURL = "http://www.developpez.net/forums/" Then
        x = IE.hwnd
        Exit For
    End If
    Next IE
     
     
    BringWindowToTop x
    ShowWindow x, SW_SHOWNORMAL
     
    End Sub

  6. #6
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Bonjour et déjà merci à tous,

    J'essaie de faire un mix des deux (c'est exactement les deux parties du code qu'il me faut) et je vous tiens au courant.

    Ps Ouskel'nord: tu n'as pas gardé ce fichier pour rien

    Ps choucks:
    ' !!!! Ne fonctionne pas si exection depuis VBE, executer via un bouton, ou barre VBA!!!!
    Qu'entends-tu par "barre VBA" ?
    Que puis-je faire et ne pas faire?

    Merci à vous

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Citation Envoyé par Chewi
    Qu'entends-tu par "barre VBA" ?
    Je voulais parler de la barre d'outils Visual Basic d'Excel. Quand le classeur est affiché.

    Citation Envoyé par Chewi
    Que puis-je faire et ne pas faire?
    Si tu fais F5 quand tu es dans l'éditeur VB ou Exécution/Exécuter Sub il ne se passera rien. La fenêtre ne viendra pas au premier plan.

    Voilà

  8. #8
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Mais en lançant mon code à partir d'un bouton de commande que j'ai créé et dont la macro lui est associée, il n'y a donc aucun problème?

    bouton se trouvant dans ma barre d'outils perso ou sur un UserForm ?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Citation Envoyé par Chewi
    Mais en lançant mon code à partir d'un bouton de commande que j'ai créé et dont la macro lui est associée, il n'y a donc aucun problème?

    bouton se trouvant dans ma barre d'outils perso ou sur un UserForm ?

  10. #10
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Bonjour à tous,

    Me revoilà enfin mais avec une erreur.

    Voici donc le code créé:
    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
    Option Explicit
    
    Private Declare Function BringWindowToTop Lib "user32" _
    (ByVal HWnd As Long) As Long
     
    Private Declare Function ShowWindow Lib "user32" _
    (ByVal HWnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Const SW_SHOWNORMAL = 1
    
    Sub ProcessusActifs()
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim Appli As New Application
    Dim winShell As New ShellWindows
    Dim x As Long
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
    For Each oproc In svc.execQuery(sQuery)
        Debug.Print oproc.Name
        If oproc.Name = "Testeur.exe" Then
            MsgBox oproc.Name & " est actif !"
            On Error Resume Next
            For Each Appli In winShell
                If Appli.Name = "Testeur" Then
                    x = Appli.HWnd
                    Exit For
                End If
            Next Appli
            BringWindowToTop x
            ShowWindow x, SW_SHOWNORMAL
        Else
            Shell ("C:\Program Files\MonApplication\Testeur.exe")
        End If
    Next
    Set svc = Nothing
    End Sub
    J'obtiens une erreur pour la ligne en gras.
    Compile error:
    User-defined type not defined
    Bon, je suppose que cette erreur n'est pas la seule

    Dois-je activer une référence?
    Problème? je ne trouve pas de "Microsoft Internet Controls"
    (La plupart des exemples sur le net portent sur des fenêtres IE et non des applications.)

    Sinon, dois-je définir moi-même le type ShellWindows ? (car dans les codes que j'ai trouvé sur internet depuis, je ne vois nulle part que l'on définit ShellWindows.)

    Ou cette erreur vient-elle d'ailleurs?

    Merci pour vos lumières.

    Chewi

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Citation Envoyé par Chewi
    Dois-je activer une référence?
    Problème? je ne trouve pas de "Microsoft Internet Controls"
    Si tu charges la bibliothèque "Microsoft Internet Controls" tu n'auras plus d'erreur à la déclartation de ton objet winshell.


    Citation Envoyé par Chewi
    (La plupart des exemples sur le net portent sur des fenêtres IE et non des applications.)
    Selon MS le type d'objets ShellWindows se rapporte à toutes les applis ouvertes avec le shell, pas uniquement à l'appli IE.

    The ShellWindows object represents a collection of the open windows that belong to the Shell. Methods are provided that can be used to control and execute commands within the Shell. There are also methods that can be used to obtain other Shell-related objects.
    http://msdn.microsoft.com/library/de...ellwindows.asp
    Mais comme toujours ils sont pas très expensifs en explications.

  12. #12
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Citation Envoyé par Chewi
    Problème? je ne trouve pas de "Microsoft Internet Controls"
    Citation Envoyé par choucks
    Si tu charges la bibliothèque "Microsoft Internet Controls" tu n'auras plus d'erreur à la déclartation de ton objet winshell.
    Déjà merci Choucks pour ces quelques précisions.

    Mais je ne trouve pas de "microsoft internet controls" dans "références" ?

    J'utilise Windows XP , SP2 et Microsoft Excel 2002, SP3

    S'agit-il de "Microsoft Internet Transfert Controls" ?

    Si c'est le cas, je l'ai activé mais j'ai toujours l'erreur.

    J'ai regardé via le lien que tu m'as donné pour voir s'il y a moyen de télécharger cette librairie "Microsoft Internet Controls" que l'on retrouve apparement sous "inet" mais je ne la trouve pas.

    Je continue à chercher mais si vous voyez quelque chose... n'hésitez pas.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Salut

    La bibliothèque "Microsoft Internet Controls" a pour référence la dll shdocvw par défaut elle doit se situer dans le répertoire system32.

    a+

  14. #14
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Salut Choucks,

    J'ai bien trouvé la librairie ( elle n'est pas au coin de la rue ).
    Je n'ai effectivement plus d'erreur.

    Problème, mon application se lance une cinquantaine de fois!
    Je crois (simple proposition vu que je n'arrive pas à tout comprendre) qu'elle se lance pour chaque application présente dans le Debug.print.

    Il doit y avoir un petit problème dans une des deux boucles à mon avis.

    Je remets le code, si tu veux essayer avec Notepad (attention aux nombre de fenêtres ouvertes!)

    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
    Private Declare Function BringWindowToTop Lib "user32" _
    (ByVal HWnd As Long) As Long
     
    Private Declare Function ShowWindow Lib "user32" _
    (ByVal HWnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Const SW_SHOWNORMAL = 1
    '----------------------------------------------------------
     
    Sub ProcessusActifs()
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim Appli As New Application
    Dim winShell As New ShellWindows
    Dim x As Long
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
    For Each oproc In svc.execQuery(sQuery)
        Debug.Print oproc.Name
        If oproc.Name = "notepad.exe" Then
    '        MsgBox oproc.Name & " est actif !"
            On Error Resume Next
            For Each Appli In winShell
                If Appli.Name = "Notepad" Then
                    x = Appli.HWnd
                    Exit For
                End If
            Next Appli
            BringWindowToTop x
            ShowWindow x, SW_SHOWNORMAL
        Else
            Shell ("C:\Windows\System32\notepad.exe")
     
        End If
    Next
    Set svc = Nothing
    End Sub

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Comme ça, ça donne quoi ?

    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
    Sub ProcessusActifs()
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim Appli As New Application
    Dim winShell As New ShellWindows
    Dim x As Long
     
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
     
    For Each oproc In svc.execQuery(sQuery)
        Debug.Print oproc.Name
    'MsgBox oproc.Name & " est actif !"
        On Error Resume Next
        For Each Appli In winShell
            If Appli.Name = "Notepad" Then
                x = Appli.HWnd
                Exit For
            End If
        Next Appli
    Next
     
        If x = 0 Then x = Shell("C:\Windows\System32\notepad.exe")
        BringWindowToTop x
        ShowWindow x, SW_SHOWNORMAL
    Set svc = Nothing
    End Sub

  16. #16
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Il ouvre une fenêtre notepad qu'il y en ai une ouverte ou non.

    Seulement, notepad n'est pas au 1er plan sur mon écran, il est bien ouvert mais est placé derrière les autres fenêtres.

    Tu devrais essayer pour voir ce que ça donne de visu.

    C'est difficile d'expliquer comment se passe le résultat.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Bon avec shellWindows tu ne peux gérer que le fênetres Explorer et IE.

    Voici ce que je propose.

    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
    Sub ProcessusActifs()
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim Idwind
     
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
     
    For Each oproc In svc.execQuery(sQuery)
        Debug.Print oproc.Name
        If oproc.Name = "notepad.exe" Then
            Idwind = "Sans titre"
        End If
    Next
        If Idwind = "" Then Idwind = Shell("C:\Windows\System32\notepad.exe", vbNormalFocus)
        AppActivate Idwind
    Set svc = Nothing
    End Sub
    Sans utiliser l'API on est vite limité.

  18. #18
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Re,

    J'ai fait un mix de ton code avec un autre code:

    Voici les déclarations:
    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
    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
    Voici la procédure:
    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
    Sub ProcessusActifs()
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim Idwind
     
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
     
    For Each oproc In svc.execQuery(sQuery)
        Debug.Print oproc.Name
        If oproc.Name = "notepad.exe" Then
            Idwind = "Sans titre"
        End If
    Next
        If Idwind = "" Then
            Idwind = Shell("C:\Windows\System32\notepad.exe", vbNormalFocus)
            AppActivate Idwind
        Else
            Dim toto As String
            Dim hwnd As Long
            toto = "Untitled - Notepad"
            hwnd = FindWindow(vbNullString, toto)
            ' Hwnd = FindWindow("OpusApp", vbNullString)
     
            If hwnd = 0 Then Exit Sub
            SetForegroundWindow hwnd
            ShowWindow hwnd, SW_SHOWMAXIMIZED
     
        End If
    Set svc = Nothing
    End Sub
    On passe ici par les titres de fenêtres.

    Merci à toi pour toute l'énergie dépensée.
    Merci également à Oliv' à qui je dois une partie de la 2ème partie du code.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    L'avantage avec l'instruction AppActivate c'est qu'elle gère toutes les applications même celles externes à MS, j'ai teste mon code avec firefox à la place de notepad et ça fonctionne

  20. #20
    Membre averti
    Homme Profil pro
    chimiste sans service informatique support
    Inscrit en
    Mars 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : chimiste sans service informatique support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2013
    Messages : 16
    Par défaut top
    Bonjour,

    et voilà, avec un bon site web, de bons utilisateurs, de l'huile de coude (ou de l'huile de doigt), un post de 2007 me sert à passer outre le blocage de mes chers admin SAP et de réussir à piloter un peu SAP à partir d'Excel.
    Pour en mettre des verrous ils en mettent. Mais je ne comprends toujours pas comment ils peuvent parler de sécurité en nous empêchant d'automatiser des taches, mais dans le même temps en nous laissant entre les mains des PC dont le BIOS n'est pas verrouillé et qui permettent de booter depuis une clef USB!!?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2010, 17h25
  2. Tester si une application est ouverte
    Par exceljm dans le forum VBScript
    Réponses: 1
    Dernier message: 28/05/2007, 17h12
  3. tester si une application externe est active
    Par cwain dans le forum Général VBA
    Réponses: 1
    Dernier message: 19/12/2006, 18h25
  4. Réponses: 2
    Dernier message: 11/02/2006, 12h56
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

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