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 :

traiter les messages systèmes


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut traiter les messages systèmes
    Bonjour,

    je fais un programme vba qui ouvre, modifie, crée et sauvegarde des fichiers

    il arrive souvent que je reçoive un "message système" du style :
    "le fichier existe déjà voulez vous le remplacer ?", ou bien d'autres,
    je voudrais pouvoir récupérer le texte du message et le traiter par vba, à savoir répondre oui ou non, etc

    existe t'il une méthode en vba pouvant effectuer cet exercice ?

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à adapter à ton contexte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Application.DisplayAlerts = False
        ' .....
        Application.DisplayAlerts = True
    ou
    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
    Sub Tst()
        On Error GoTo Erreurs
     
        ' .....
    Sortie:
        Exit Sub
    Erreurs:
        If Err.Number = xx Then
            ' ....
        ElseIf Err.Number = xy Then
            ' ....
        ElseIf Err.Number = xz Then
            ' ....
        Else
            MsgBox Err.Number & vbCrLf & Err.Description
            Err.Clear
            Resume Sortie
        End If
     
        Err.Clear
        Resume Next
    End Sub
    A voir : La gestion des erreurs dans Excel

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    ce n'est pas des erreurs vba que je veux traiter mais les massages émis par Windows dés que je veux traiter un fichier, les même que lorsque je manipule les fichiers sous Windows, et là où on clique à la main le choix désiré, je veux moi que ce soit le programme vba qui le traite, donc je récupère le texte du message et en fonction de la situation que vba connait le programme répondra par ce qu'il doit répondre,
    j' ai l'impression que ce que tu me proposes c'est le traitement des erreurs du programme vba.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    J'aurais tendance à dire qu'il ne faut pas chercher à intercepter les messages d'erreurs mais faire en sorte que les erreurs ne se produisent pas.

    Autrement dit: les prévoir.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    il faut donner liste exhaustive des situations sinon c'est impossible .
    tu es sous Seven ?

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonsoir

    ta question soulève un détail qui me perturbe
    tu dis

    que tu voudrais intercepter les message entre guillemet"windows du genre blablabla exemple
    "le fichier existe déjà voulez vous le remplacer ?", ou bien d'autres,
    je voudrais pouvoir récupérer le texte du message et le traiter par vba, à savoir répondre oui ou non, etc
    pourquoi veut tu faire ce qui se fait déjà tout seul ?

    sinon fait une recherche sur l'expression "hook" mais c'est un sacré boulot (utilisation des apis )

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Ce type de message en particulier tu peux le gérer en testant si le fichier existe et dans ce cas, le supprimer avant de l'enregistrer à nouveau :
    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
     
    Sub Enregistrer()
     
        Dim Fichier As String
     
        Fichier = "D:\Dossier\Classeur1.xls"
     
        If Dir(Fichier) <> "" Then
     
            Kill Fichier 'suppression du fichier existant
     
            ThisWorkbook.SaveAs Fichier, xlExcel12
     
        End If
     
    End Sub
    Hervé.

  8. #8
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    merci à patricktoulon qui a le mieux compris ce que je veux:
    mon programme crée , lit et sauvegarde des fichiers, donc à chaque fois que windows émets un message concernant cette action, il faut que je l'intercepte et que je réponde en fonction de la situation. ce n'est pas si trivial que ça.
    tu me parles de "Hook", mais en cherchant sur le net je ne vois pas comment l'utiliser, et le peu que je vois est assez compliqué, est ce que tu peux me décoincer , et surtout si tu connais un site qui m'explique la méthode ce serait merveilleux.

    à +

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Mes deux sous : Utiliser "SendKeys". Le code suivant fonctionne pour enregistrer sous le même nom le classeur contenant la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.SendKeys "{TAB}{TAB}{ENTER}"
    ThisWorkbook.SaveAs ThisWorkbook.Name

  10. #10
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    ce qui m’intéresse est de savoir récupérer le corps du message émis, il peut y avoir plusieurs cas que je dois gérer, si c'est en français ou en anglais , si il ya plusieurs réponses possibles etc, enfin quoi tout ce que windows peut produire quand il s'agit de gérer les fichiers.

    je dois avoir un peu de mal à me faire comprendre car ce qu'on me propose, à part patricktoulon ne correspond pas à ce que je veux faire, il s'agit bien d'interpreter ce que windows émet , et c'est vba qui doit lire et répondre, pas l'utilisateur.

    peut être que ce n'est pas possible, mais ça m'étonnerait.

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    oui j'ai tres bien compris ce que tu veux faire

    regarde dans la faq ou meme les source le msgbox perso de silkyroad je crois il y a une partie qui traite le sujet

    mais c'est jouer avec les apis et c'est super compliqué

    d'autant plus qu'il va falloir que tu joue avec l'api postmessage et send message ce qui n'est pas une mince affaire en VBA crois moi

    si tu a le niveau amuse toi bien sinon choisi un autre chemin

    a mon avis il va falloir que tu utilise une bonne dizaine d'apis le tout dans des fonction bien organisées excel et VBA ne devinent pas

    bon courage

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Citation Envoyé par Patnel Voir le message
    ce qui m’intéresse est de savoir récupérer le corps du message émis, il peut y avoir plusieurs cas que je dois gérer, si c'est en français ou en anglais , si il ya plusieurs réponses possibles etc, enfin quoi tout ce que windows peut produire quand il s'agit de gérer les fichiers.

    je dois avoir un peu de mal à me faire comprendre car ce qu'on me propose, à part patricktoulon ne correspond pas à ce que je veux faire, il s'agit bien d'interpreter ce que windows émet , et c'est vba qui doit lire et répondre, pas l'utilisateur.

    peut être que ce n'est pas possible, mais ça m'étonnerait.
    tu fais bien si tu montre un exemple de ton besoin

  13. #13
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    merci patricktoulon de me donner du courage ,
    peut être avais tu l'intention de mettre un lien sur un tuto de sylkyroad, ce grand savant que le monde envie.
    Mais je ne sais toujours pas comment aborder le sujet avec les "apis"
    peux tu m'en dire un peu plus.

  14. #14
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    j'ai fait quelques testes j'ai pu contrôler les dialogues standards MessageBox (no yes cancel) simuler des actions récupérer le message sur le dialogue etc ..
    mais ça va te crée d'autres problèmes je te conseille d'essayer une autre solution ...mais si tu tu es intéressé par ma démarche tu fais signe

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Avec fso tu dois pouvoir gérer tes fichiers.
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour patnel

    non ne me remercie pas il est vai que j'essaie de te dissuader de faire ca pour plusieur raisons

    la premiere c'est que c'est tres complexe
    la 2 eme c'est pas forcement fiable selon les librairies disponibles en fonction du system d'exploitation utilisé

    la 3 eme ca transforme une petite fonction en vrai usine a gaz
    pense a ce qui ont une toute petite becanne et qui vont utiliser ton fichier


    sans parler des restriction (tres souvent le cas au boulot )sur l'utilisation de processus

    d'autant plus que quand un message apparait ca veut dire qu'il s'est produit quelque chose windows attent donc une reponse de ta part
    donc la macro est suspendu et ne peut plus avance avnt ta reponse
    de cefait le code traitant le texte dans les message ne peut pas demarrer

    le serpent qui se mort la queue tu connais ???
    je m'arrete la sinon tu va me maudir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    en fait tu me demandes de lâcher, je ne sais pas comment je vais pouvoir expliquer ça à mes utilisateurs qui sont persuadés que le programmeur sait tout faire

    je reconnais que ce n'est pas évident, je vais devoir faire une usine à gaz en vba pour traiter de ce qu'on doit faire

    Merci Patrick à +

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour

    ok mais un programeur se doit de faire un code fiable et fonctionnel
    utilisant si possible le moins de resource possible afin d'eviter les bug innerent a une puissance trop faible de la machine par exemple sur dans le dommaine pro
    a toi de proposer une alternative correspondant au plus pret du souhait du client et il y en a

    je vais me pencher sur la question pour faire un diagnostique sur la fiabilité
    de telles manipulations

    a plus
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    pour fair avancé les choses

    Mets le code suivant dans un module standard
    utilise la fonction HookCallBack pour intercepter les messages
    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
    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
    Option Explicit
    ' MessageBox hook by Montor
    Private Declare Function GetWindow Lib "user32" (ByVal Hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function GetWindowTextW Lib "user32" (ByVal Hwnd As Long, ByVal lpString As Long, ByVal nMaxCount As Long) As Long
    Private Declare Function GetWindowTextLengthW Lib "user32" (ByVal Hwnd As Long) As Long
    Private Declare Function SetWindowsHookExW Lib "user32" (ByVal idHook As Long, ByVal lpfn As Any, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hhk As Long) As Boolean
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hhk As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function GetClassNameW Lib "user32" (ByVal Hwnd As Long, ByVal lpString As Long, ByVal nMaxCount As Long) As Long
    Private Declare Function EndDialog Lib "user32" (ByVal hDlg As Long, ByVal nResult As Long) As Long
     
    Private Const HCBT_ACTIVATE = 5
    Private Const WH_CBT = 5
    Private Const DLG_CLASS = "#32770"
    Private Const GW_HWNDNEXT = 2
    Private Const GW_CHILD = 5
    Private Const MAX_PATH = 266
    Private fHandle As Long
    Private Hook As Long
     
    Enum IDSExitCode
      ID_OK = 1
      ID_CANCEL = 2
      ID_ABORT = 3
      ID_RETRY = 4
      ID_IGNORE = 5
      ID_YES = 6
      ID_NO = 7
      ID_CLOSE = 8
      ID_HELP = 9
      ID_TRYAGAIN = 10
      ID_CONTINUE = 11
    End Enum
     
    Private Function WinClass(ByVal Hwnd As Long) As String
    Dim Tmp As String
        Tmp = Space(MAX_PATH)
        WinClass = Left(Tmp, GetClassNameW(Hwnd, StrPtr(Tmp), MAX_PATH))
    End Function
     
    Function BWindow(ByVal H As Long) As Long
        H = GetWindow(H, GW_CHILD)
        Do
           BWindow = H
           H = GetWindow(H, GW_HWNDNEXT)
        Loop Until H = 0
    End Function
     
    Private Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim Txt As String
    Dim LHandle As Long
    Dim L As Long
      HookProc = CallNextHookEx(Hook, nCode, wParam, lParam)
      On Error GoTo ExitLab
         If (nCode = HCBT_ACTIVATE) Then
            If (WinClass(wParam) = DLG_CLASS) Then
                StopHook
                fHandle = wParam
                LHandle = BWindow(wParam)
                L = GetWindowTextLengthW(LHandle)
                Txt = Space(L)
                GetWindowTextW LHandle, StrPtr(Txt), L + 1
                HookCallBack Txt
                fHandle = 0
            End If
        End If
    ExitLab:
    End Function
     
    Private Sub DlgExitCode(ByVal AExit As IDSExitCode)
       If (fHandle <> 0) Then
            EndDialog fHandle, AExit
            fHandle = 0
       End If
    End Sub
     
    Sub StartHook()
      If Hook <> 0 Then Exit Sub
      fHandle = 0
      Hook = SetWindowsHookExW(WH_CBT, AddressOf HookProc, Application.Hinstance, 0)
    End Sub
     
    Sub StopHook()
      If Hook <> 0 Then
         UnhookWindowsHookEx Hook
         Hook = 0
         fHandle = 0
      End If
    End Sub
     
    Private Sub HookCallBack(ByVal MessageText As String)
       MsgBox "Message :" & vbCr & "[" & MessageText & "]"
       'placer le code interception ici 
       DlgExitCode ID_NO  'simule click No
    End Sub
    code de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    On Error GoTo FreeHook
    StartHook
        'essaie enregistrer une copie dans le meme endroie et avec le meme nom 
        ActiveWorkbook.SaveAs ActiveWorkbook.FullName
     
    FreeHook:
       StopHook
    End Sub



    je vais me pencher sur la question pour faire un diagnostique sur la fiabilité
    de telles manipulations
    je suis curieux pour ta réponse

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    wouawhh montor la tu fait fort

    cela dit getwindowtext te donne souvent le text de la caption de la fenetre et non le contenu

    mais ca reste un sacré moulin

    et moi aussi je suis curieux de savoir si chez toi CDO marche bien et encore plus ou tu es allez cherche ton 1 er code qui soit disant serait le mien
    qui prenait en compte les MDP

    bravo pour ton "hooking"


    edit :

    je viens de l'essayer et je ne sais pas l'effet que tu a voulu faire mais chez moi queudale rien de nouveau ce me fait exactement la meme chose que sans code
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Les messages dans le diagramme de séquence système
    Par taki-eddine dans le forum UML
    Réponses: 2
    Dernier message: 18/05/2015, 11h28
  2. Traiter les messages d'une frame
    Par etranger dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/04/2007, 15h26
  3. Réponses: 13
    Dernier message: 21/11/2005, 17h39
  4. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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