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 :

Comment affecter un évenement à un bouton créé par un Userform?


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut Comment affecter un évenement à un bouton créé par un Userform?
    Bonjour à tous,

    Et je remercie par avance ceux qui pourront me donner des pistes.

    Je souhaite créer une interface sans que l'utilisateur puisse manipuler la feuille Excel.

    Pour cela j'ai créé un Userform en plein écran qui va générer 100 boutons de commandes dont les propriétés Caption et BackColor dépendront de données cachées dans la feuille Excel. Les données sont dans les colonnes A à E, ligne 1 à 100 de la feuille 1.

    Mon souci : Comment associé une action à l'évenement :
    "commandbutton._click ()" pour les boutons générés?

    Quand l'utilisateur clicquera sur un des 100 boutons créés je souhaiterai par exemple enregistrer la valeur "Caption" du bonton de commande dans une cellule spécifique.

    Voilà j'espère avoir été clair

    Amicalement,
    ThamAL

    Voici le code pour le moment (L'userform dans le mode création est vide)
    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
     
    Private Sub UserForm_Activate()
    With Me
    .StartUpPosition = 3
    .Width = Application.Width
    .Height = Application.Height
    .Left = 0
    .Top = 0
    End With
     
    For i = 1 To 100
     
    Dim Obj As Control
    Set Obj = Me.Controls.Add("forms.commandbutton.1")
     
    With Obj
    .Caption = Sheets("feuil1").Range("a" & i)
    If Range("e" & i).Value = 1 Then
    .BackColor = &H80FF80
    Else
    If Range("e" & i).Value = 2 Then
    .BackColor = &H8080FF
    Else
    If Range("e" & i).Value = 3 Then
    .BackColor = &HFFFF80
    Else
    If Range("e" & i).Value = 4 Then
    .BackColor = &H80FFFF
    Else
    .BackColor = &H80FF&
    End If
    End If
    End If
    End If
     
    If i < 21 Then
    a = 60 * i
    .Left = a - 50
    .Top = 30
    .Width = 50
    .Height = 20
     
    Else
     
    If i > 20 And i < 41 Then
    a = 60 * (i - 20)
    .Left = a - 50
    .Top = 60
    .Width = 50
    .Height = 20
     
    Else
    If i > 40 And i < 61 Then
    a = 60 * (i - 40)
    .Left = a - 50
    .Top = 90
    .Width = 50
    .Height = 20
     
    Else
    If i > 60 And i < 81 Then
    a = 60 * (i - 60)
    .Left = a - 50
    .Top = 120
    .Width = 50
    .Height = 20
     
    Else
    If i > 80 Then
    a = 60 * (i - 80)
    .Left = a - 50
    .Top = 150
    .Width = 50
    .Height = 20
     
    End If
    End If
    End If
    End If
    End If
     
    End With
     
    Next i
     
    End Sub

  2. #2
    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
    Bonjour
    interesse toi au module classes

    en a tu deja entendu parler ?
    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

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Oui j'ai un peu regardé et c'est une piste à laquelle j'ai pensé mais ça parait difficilement à ma portée...

    Auriez-vous un début de code ou l'idée générale pour commencer?

    Merci

  4. #4
    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,

    Tu ajoute un module de classe à ton projet que tu laisse nommé par défaut "Classe1" (tu pourras adapter par la suite) et tu colle ce code dedans. Attention, ici la Form se nomme "UserForm1", adapte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public WithEvents GroupeBtn As MSForms.CommandButton
     
    Private Sub GroupeBtn_Click()
     
       UserForm1.EvenementBouton GroupeBtn
     
    End Sub
    Dans le module de ta Form, tu colle ce code-ci (que j'ai modifié car les If imbriqués sont à mon sens assez indigestes) :
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    Dim Btn() As New Classe1
     
    Sub EvenementBouton(Bouton As MSForms.CommandButton)
     
        MsgBox Bouton.Name
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
        'Dim Obj As Control
        Dim I As Integer
        Dim A As Integer
     
        With Me
     
            .StartUpPosition = 3
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0
            .Top = 0
     
        End With
     
        For I = 1 To 100
     
        ReDim Preserve Btn(1 To I)
     
        Set Btn(I).GroupeBtn = Me.Controls.Add("forms.commandbutton.1")
     
     
        With Btn(I).GroupeBtn
     
            .Caption = Sheets("feuil1").Range("A" & I)
     
            Select Case Range("E" & I).Value
     
                Case 1
                    .BackColor = &H80FF80
     
                Case 2
                    .BackColor = &H8080FF
     
                Case 3
                    .BackColor = &HFFFF80
     
                Case 4
                    .BackColor = &H80FFFF
     
                Case Else
                    .BackColor = &H80FF&
     
            End Select
     
            Select Case I
     
                Case Is < 21
     
                    A = 60 * I
                    .Left = A - 50
                    .Top = 30
                    .Width = 50
                    .Height = 20
     
                Case 21 To 40
     
                    A = 60 * (I - 20)
                    .Left = A - 50
                    .Top = 60
                    .Width = 50
                    .Height = 20
     
                Case 41 To 60
     
                    A = 60 * (I - 40)
                    .Left = A - 50
                    .Top = 90
                    .Width = 50
                    .Height = 20
     
                Case 61 To 80
     
                    A = 60 * (I - 60)
                    .Left = A - 50
                    .Top = 120
                    .Width = 50
                    .Height = 20
     
                Case Is > 80
     
                    A = 60 * (I - 80)
                    .Left = A - 50
                    .Top = 150
                    .Width = 50
                    .Height = 20
     
            End Select
     
        End With
     
        Next I
     
    End Sub
    Pour le test, le click sur un bouton va afficher une boite de message avec le nom du bouton, il te suffit d'adapter la proc "EvenementBouton" à ce que tu souhaite faire car le module de classe lui passe en argument l'objet bouton qui viens d'être cliqué.

    Hervé.

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    C'est juste "Parfait"!

    Merci beaucoup Theze cela va me permettre d'avancer jusqu'à mon prochain bloquage

  6. #6
    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
    Bonsoir,

    ThamAL, et bien reviens dés que ça bloque

    Hervé.

  7. #7
    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
    Bonjour

    @theze :
    pourquoi envoie tu levenemnt de la classe dans une sub du form
    pourquoi pas directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub GroupeBtn_Click()
    GroupeBtn.name
    end sub
    ce qui est le propre d'une classe de control non?


    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

  8. #8
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Bonjour,

    Je ne savais pas s'il fallait ouvrir un autre post ou pas vu que mon premier souci était résolu alors je contitnu ici.

    Mon projet à bien avancé mais je me trouve devant 2 problèmes liés je pense, à la résolution de l'écran.

    1er problème
    - L'userform s'affichant en plein écran, les 20 boutons par lignes générés apparaissent bien. Ceci sur un écran 23 pouces
    Par contre, patatras lorsque je lance la macro sur un portable à peine la moitié apparaissent...

    Y a t-il un moyen d'afficher tous les boutons quelques soit la résolution de manière transparente pour l'utilisateur du fichier? (sans changer la résolution de son PC).

    2eme problème
    - Je fais apparaître un second userform qui se place en bas à droite.
    Il occupe une petite partie de l'écran sur le 23 pouces, par contre il prend presque la moitié de l'écran sur le portable...

    Voila, je souhaiterais que les Userforms s'affichent de manière identique quelques soit le PC utilisé.

    En vous remerciant pour votre aide

    Tham

  9. #9
    Invité
    Invité(e)
    Par défaut
    Salut,

    Petite explications, bien que pour l'instant, je ne te donnerai pas de solutions (pas aujourd'hui). Uniquement une petite explication du pourquoi du comment à la volée:

    Les UserForms s'affichent en utilisant une base de 72 ppp (point par pouce basé sur 1440/20). Windows par défaut utilise une base de 96 ppp et il n'est pas possible d'aller plus bas sur Windows, c'est la base et en même temps le minimum. Il est possible de modifier cette valeur (144 pp pour moi par exemple).
    Les UserForm s'aligne sur un Ratio ppp utilisateur/ppp référence, soit pour moi, Ratio = 144/72 = 2.
    C'est à dire que pour moi, un UserForm de Width = 100 occupera enfaite 200 pixels sur mon Windows+écrans.
    Il existe un API qui permet de voir certaines infos sur la config PC de l'utilisateur:
    - GetDeviceCaps te permettra via la constante LOGPIXELSX et LOGPIXELSY de voir le nombre de ppp utilisateur décrit au dessus, le ppp référence étant de 72 ...

    - GetSystemMetrics te permet de voir la définition de l'écran de l'utilisateur via la constante SM_CXSCREEN et SM_CYSCREEN


    patricktoulon a l'air de bien aimer l'utilisation d'API ... peut être qu'il dégainera avant moi


    P.S.:
    Pour la Taille, ça se passe à l'ini de l'UserForm. Tu fabrique ton userform sur ton PC en tenant compte des paramètres vu plus haut (en utilisant un ratio), puis tu redim à l'initialisation l'UserForm en fonction d'un ratio.

    Enfaite, Microsoft appel ça tout simplement une définition virtuelle et réelle.
    Je ne sais plus la base de leur calcul, mais en prenant la référence à 72 ppp plutôt que 96, un écran de 1920 x 1080 avec ppp = 144 aura une définition réelle de 1920 x 1080 et une définition virtuelle de 960 x 540.

    Ici, si l'utilisateur A passe en plein écran avec un écran 1280 x 720 @ 96 ppp et que l'utilisateur B passe en plein écran avec un écran de 2560 x 1440 @ 192 ppp, l'userform sera quasiment identique au niveau taille.

    La qualité sera meilleur @ 192 ppp quand même (2 fois plus de points sur chaque axe pour représenter un texte).


    ReP.S.: Pour être plus clair, c'est la définition virtuelle qu'il te faudra avec les 2 ingrédients suivant :
    - ppp
    - définition
    Définition virtuelle UserForm = Définition utilisateur * ( 72 / ppp utilisateur)
    Et là, tous les userforms seront presque identiques.

    ReRePS:
    Note que les images sont définis en pixels.
    Pour un affichage correcte, une image de 128 x 128 aura ces pixels aligner sur une zone image USERFORM de 64 x 64 si le ppp utilisateur est de 2 x 72 ppp (144 ppp).

  10. #10
    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,

    Patrick :
    @theze :
    pourquoi envoie tu levenemnt de la classe dans une sub du form
    pourquoi pas directement
    Parce qu'il est plus facile pour un novice de bidouiller dans un module standard que dans un module de classe.

    Hervé.

    Re,

    ThamAL, essai 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
    Private Sub UserForm_Activate()
     
        With Me
     
            .StartUpPosition = 3
            'Application.UsableHeight et Application.UsableWidth = zone des cellules
            .Width = Application.Width
            .Height = Application.Height
     
            .Left = 0
            .Top = 0
     
        End With
     
    End Sub
    Hervé.

  11. #11
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Nouveau2
    Merci de ta description détaillée, c'est complexe mais très clair bien qu'il me faudra du temps pour l'intégrer..

    Citation Envoyé par Theze Voir le message
    Oups,

    Patrick :

    Parce qu'il est plus facile pour un novice de bidouiller dans un module standard que dans un module de classe.

    Hervé.
    Tout à fait d'accord

    Merci Hervé, je vais tester ta dernière proposition.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La solution de Theze est beaucoup plus simple et préférable plutôt que l'utilisation d'API.
    J'ai testé et elle retourne bien l'équivalent d'une définition virtuelle au niveau de l'UserForm.
    Par contre, application correspond à Excel, c'est la taille de la fenêtre active de Excel, donc il faudra veiller à ce qu'elle soit en plein écran lors de l'appel UserForm_Activate.

    Sinon, pour l'explication, de rien, mais c'est moi qui ai été trop long a expliquer quelque chose de simple au final qui tient en 3 chiffres (ou presque).

  13. #13
    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,

    Pour que l'application soit en plein écran :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub PleinEcran()
     
        Application.WindowState = xlMaximized
     
    End Sub
    Hervé.

  14. #14
    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 a tous
    patricktoulon a l'air de bien aimer l'utilisation d'API ... peut être qu'il dégainera avant moi
    en temps normal oui mais j'ai été occupé la

    en ce qui concerne l'affichage en plein ecran il y a une api encore plus simple que getsysmetric ect....

    c'est le showindowA tout simplement

    dans le module standard en haut de module tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'api pour  capturer le handle de la fenetre
        Public Declare Function GAW Lib "user32" Alias "GetActiveWindow" () As Long
     
    'api pour changer le mode d affichage du userform et activer ou non la fenetre
        Public Declare Function SWH Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    et tu y place cette macro en dessous des autres macros deja existantes si il y en a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub affichage_plein_ecran()
    ' on affiche le userform en plein ecran avec l'api showwindowa de la user32.dll _
      bien moins lourd que mes versions precedente de maximisation de l'userform et plus rapide et plus propre
    '1= mode normal:3 =maximiser:6 =minimiser
        SWH GAW, 3
    End Sub
    maintenant dans le activate du userform tu met:
    je dis bien dans le activate pour etre sur quele GAW (getactivewindow)soit bien le userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
    affichage_plein_ecran
    End Sub
    voila voila

    sinon!! la marmotte.........
    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

  15. #15
    Invité
    Invité(e)
    Par défaut
    Salut,

    Citation Envoyé par patricktoulon Voir le message
    je dis bien dans le activate pour etre sur quele GAW (getactivewindow)soit bien le userform
    Sinon, attention à la fenêtre active d'Excel (voir du VBE)

    C'est clair que la modif avec API est mieux car elle bloque en même temps le déplacement, puis bien sûr, aucun calcul à faire pour obtenir la bonne taille.
    Mais moins bien point de vue compatibilité + beug éventuelle.

    A+

  16. #16
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Bonjour Patrick et merci pour ta réponse.
    Je vais tester ça dès que possible.

  17. #17
    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 a tous

    excuses pour la réponse tardive mais j'ai été très occupé

    bon pour le problème de getactivewindow qui a tendances a s'appliquer sur vbe on changera cet api pour findwindow avec une variable long pour le handle c'est plus empli cit
    je vous laisse faire une recherche sur la question notamment dans les contribs vous y trouverez quelqes uns de mes exemplaires

    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

Discussions similaires

  1. [MVVM] Comment remplacer l'évenement 'SelectionChanged' du Ruban par une 'Command' ?
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 15/07/2015, 00h00
  2. [E-07] Comment affecter par macro une macro à un objet
    Par BATISSEUR dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2009, 09h49
  3. Réponses: 1
    Dernier message: 18/06/2008, 09h32
  4. Comment affecter une valeur par defaut si null?
    Par cassy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/07/2006, 19h13
  5. Comment affecter une image a un PictureBox par code?
    Par ayouss dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 08h26

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