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 :

controle du format d un textbox


Sujet :

Macros et VBA Excel

  1. #21
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    lors déplace ton Exit sub qui dans sa position ne sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       If Not LaDate Like strFormat Then MsgBox "Format incorrecte": Exit Sub
       LaDate = CDate(LaDate)
       Exit sub
    gestion_erreur:
        MsgBox " erreur n ° " & Err.Number & vbCrLf & Err.Description
         If Err.Number = 13 Then MsgBox "Ce n est pas une date !"
    End sub
    Bonne soirée

    @UcFoutu,
    Je suis assez d'accord avec patbou pour ce qui est du "sur-contrôle", mais pour ma part, je préfère faciliter la saisie quand au format imposé. De toutes les façons, on n'empêchera jamais un utilisateur distrait de tromper le développeur... A nous de gérer les erreurs éventuelles et, finalement, le On error n'est pas la plus mauvaise des méthodes.
    Sinon, j'ai d'autres vérifs à te proposer mais si tu souhaites les connaître, je t'enverrai un mp
    A+ et bonne soirée à toi aussi

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut

    avec le copier/coller j ai effectivement mis un
    exit sub
    en trop

    c la qu on voit que les erreurs sont difficile à gerer ....
    honte à moi !

  3. #23
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Comme j'ai reçu un mp sympa de UcFoutue qui me laisse penser qu'il le souhaite, j'ajoute un exemple de code qui permet de vérifier si une date est bien une date valide dans les six cas qu'il a cités.
    ladate = "30/03/2001"
    ladate = "32/03/2001"
    ladate = "12/30/2001"
    ladate = "12/30/2001"
    ladate = "12-30-2001"
    ladate = "12 30 2001"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim LaDate, verif As Boolean
      LaDate = "31/09/2001 12:12:12"
      verif = InStr(LaDate, "/") <> 0
      verif = verif And Val(Split(Left(LaDate, InStr(LaDate, " ") - 1), "/")(0)) <= 31
      verif = verif And Val(Split(Left(LaDate, InStr(LaDate, " ") - 1), "/")(1)) <= 12
      verif = verif And IsDate(LaDate)
      MsgBox IIf(verif, "c'est bon", "c'est mauvais")
    End Sub
    Je suis plein de bonne volonté quand on me le demande gentiment
    A+

  4. #24
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    J'aurais vraiment aimé que certains bouts de codes ne restent pas au niveau MP...
    Dommage...

    Mais bon, celà m'a donné envie d'ouvrir Excel, que je déteste et connais bien peu, de me retoursser les manches et d'écrire.


    Ce qui suit protège contre toutes les saisies incohérentes, y compris en raison des fantaisies que se permet VB et dont j'ai parlé plus haut...

    Le contrôle se fait tout au long de la saisie.
    Les deux fonctions utilisées permettent une utilisation pour autant de textboxes que l'on veut.

    Je découvre un peu mieux VBA-Excel et voit que ce chenapan rend les choses un peu plus difficiles à gérer (par rapport à VB)

    J'ai été obligé de faire harakiri de petites choses bien conviviales, mais ai malgré tout fait en sorte de brider l'utilisateur. Ce dernier ne risquera pas, par exemple, d'utiliser à tort et à travers des effacements intermédiaires (que ce soit à l'aide de la souris ou d'autre chose).
    Je suis à peu près certain de ce qu'en m'y penchant un peu plus, je parviendrais à faire mieux encore (ce que j'ai fait avec VB) et soulager l'utilisateur de la frappe du séparateur.

    J'espère que le code suivant, écrit avec le VBA d'Excel 2000, fonctionne également avec les autres versions.


    '
    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
    ===================== mes trois précautions =============================
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
      KeyAscii = censeur1(KeyAscii, "/")
    End Sub
    
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      KeyCode = censeur2(KeyCode)
    End Sub
    
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      If Len(TextBox1.Text) Mod 10 <> 0 Then MsgBox "ouille": Cancel = True
    End Sub
    
    '=======================================================================
    ' ====================== les deux fonctions qu'elles appellent ==========
    Private Function censeur1(cle As MSForms.ReturnInteger, sep As String) As Integer
      'Je travaille avec Excel 2000 version 9.0
      censeur1 = 0
      Dim toto As String
      toto = Me.ActiveControl.Text & Chr(cle)
      If Not toto Like Left("##" & sep & "##" & sep & "####", Len(toto)) Then Exit Function
      'ne touchez pas à la date de référence 01/01/2000 _ elle n'est pas choisie au
    'hasard et a son importance.
      If Not IsDate(toto & Mid("01/01/2000", Len(toto) + 1)) Then Exit Function
      If Val(Chr(cle)) > 1 And Len(toto) = 4 Then Exit Function
      If Val(Chr(cle)) > 2 And Len(toto) = 5 Then Exit Function
      censeur1 = cle
    End Function
    
    Private Function censeur2(cle As MSForms.ReturnInteger) As Integer
      censeur2 = cle
      If Me.ActiveControl.SelStart < Len(Me.ActiveControl.Text) Then
        censeur2 = 0
        Me.ActiveControl.SelStart = Len(Me.ActiveControl.Text)
      End If
    End Function
    Voilà donc.

    C'était mon cadeau de cette fois-ci

    Bonne continuation nà tous et à .... dans 2 ou 3 mois, peut-être.

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub test()
    Dim LaDate, verif As Boolean
      LaDate = "31/09/2001 12:12:12"
      verif = InStr(LaDate, "/") <> 0
      verif = verif And Val(Split(Left(LaDate, InStr(LaDate, " ") - 1), "/")(0)) <= 31
      verif = verif And Val(Split(Left(LaDate, InStr(LaDate, " ") - 1), "/")(1)) <= 12
      verif = verif And IsDate(LaDate)
      MsgBox IIf(verif, "c'est bon", "c'est mauvais")
    End Sub
    et si la date est 29/02/07 ou 31/04/07 etc etc
    controler les saisies dans chaque condition mois/année demande un algo long et fastidieu

    donc j ai opté pour la solution que j ai cité qq messages auparavant


    en tout cas merci à tous
    j espere aussi que cette discussion aura pu servir a d autres aussi

  6. #26
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Pathbou...

    Mon code contrôle tout celà ....

    L'utilisateur ne pourrait même pas frapper un chiffre non cohérent (au moment même de la frappe de ce chiffre !...)
    (et je tiens préciser que le code que tu as testé n'est pas écrit par moi.... contrairement à d'autres que tu n'as pas vus ...)

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour ucfoutu

    je n ai pas testé l integralité des erreurs potentielles de saisie ,
    mais je pense que ceci est suffisament exhaustif.
    mais si tu as des remarques ou si tu vois des cas non prise en compte n hesites pas

    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 FormatDatePlusHeure()
    Dim LaDate, strFormat
     
        On Error GoTo gestion_erreur
       LaDate = InputBox("date")
       strFormat = "##/##/#### ##:##:##"
     
       If Not LaDate Like strFormat Then MsgBox "Format incorrecte": Exit Sub
       LaDate = CDate(LaDate)
    gestion_erreur:
        MsgBox " erreur n ° " & Err.Number & vbCrLf & Err.Description
         If Err.Number = 13 Then
         MsgBox "Ce n est pas une date !"
     
         End If
    donc allez y trouver la faille

    un copier/coller du code ,une saisie de date a vous de tester

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    je tiens a preciser que le but de cette manip n est pas une cours a la meilleur
    procedure possible
    mais de faire avancer le smilblic

    sachant qu en vba la gestion des dates (je trouve) est tres delicate

  9. #29
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    sachant qu en vba la gestion des dates (je trouve) est tres delicate
    Hé oui... justement....(comme tu le dis)...
    Remonte donc plus haut et relis mon tout premier message d'alerte.
    (c'en est presque désespérant )
    Quant à la "course", vous allez la continuer sans moi pendant quelque temps...
    Les courses sont réservées aux autruches (tu sais ? ces oiseaux qui mettent la tête dans le sable pour ne pas voir le danger... hein...)

    Bye

  10. #30
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Pathbou...
    Mon code contrôle tout celà ....
    L'utilisateur ne pourrait même pas frapper un chiffre non cohérent (au moment même de la frappe de ce chiffre !...)
    Like fait déjà ça en cours de saisie, comme l'indique SilkyRoad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        x = Len(TextBox1)
        strFormat = "##/##/#### ##:##:##"
        strFormat = Left(strFormat, x)
        If Not TextBox1 Like strFormat Then _
            TextBox1 = Left(TextBox1, x - 1)

  11. #31
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bien évidemment (et j'avais dit le bien que j'en pensais...)
    J'ai encensé l'utilisation de Like et de Isdate....

    Il convient de tout relire de mon premier message d'alerte)

    Ces deux précautions ne suffisent pas ...du fait des particularités d'interprêtation de VB

    C o m m e n t f a u t -i l l e d i r e ?

    Et en plus : tel que l'évènement change est utilisé : essaye donc de jouer à l'utilisateur espiègle ou étourdi : sers-toi des flêches directionnelles, de la touche BackSpace au milieu de ce qui est déjà frappé et constate la situation ...
    Recommence et cette-fois ci utilise donc la touche suppr et constate encore
    Et j'en passe... parmi lesquelle (comme hurlé 100 fois : l'acceptation d'un mois supérieur à 12 si, par malheur, le nombre de jours est inférieur à 13 ...)

    Je crois que j'ai beaucoup perdu mon temps (je n'aurais jamais dû céder à l'insistance de deux dames généreuses qui m'ont forcé à alerter... Il y a des cas où il vaut mieux "laisser faire"... ma foi...).

  12. #32
    Membre régulier
    Homme Profil pro
    Contrôleur des Systèmes d'Information
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Contrôleur des Systèmes d'Information
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 105
    Points
    105
    Par défaut
    J'ai vraiment bien aimé tous ces échanges et tous ces efforts.
    Mais pour faire plus simple, si on utilisait le contrôle DTPicker (Microsoft Date and Time Picker Control 6.0 (SP4) )?
    Oui, oui ... je sais que c'est trop facile, mais peut être que la meilleure solution c'est souvent de ne pas chercher midi à quatorze heures?

  13. #33
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Bennn.. moi pour faire simple j'aurais une autre approche..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
            TesterSiDateValide TextBox1.Text
        End If
    End Sub
    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 TesterSiDateValide(DT As String) '+ l'heure à la suite
    'format valide
    '10/12/2007 15:6:20
    '10/12/2007 15:06
    ' et tout les autres.
    Dim TbG
    Dim TbD
    Dim TbH
        tgb = Split(DT, " ")
        TbD = Split(tgb(0), "/")
        TbH = Split(tgb(1) & ":0", ":")
        If (TbD(0) > 0 And TbD(0) < 32) And (TbD(1) > 0 And TbD(1) < 13) And (TbD(2) > 1990 And TbD(2) < 2020) _
             And TbH(0) < 25 And TbH(1) < 60 And TbH(2) < 60 Then
             MsgBox "La saisie est valide"
        Else
            MsgBox "La saisie n'est pas valide"
        End If
     
    End Sub

  14. #34
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour, Leforestier...
    (je resterai là tant que cette discussion ne sera pas arrivée à son terme)...

    Excuse-moi ... C'est ce que tu appelles du "simple" ?
    Avec un split, en plus ?
    Et tout celà pour ne contrôler qu'en fin de saisie ?

    Regarde cette fonction, s'il faut se contenter d'un contrôle in fine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Function test(tadate As String) As Boolean
      test = False
      If Not tadate Like "##/##/####" Then Exit Function
      If Not IsDate(tadate) Then Exit Function
      If Month(tadate) = Val(Left(tadate, 2)) Then Exit Function
      test = True
    End Function
    Seule la partie écrite en rouge nécessite à la fois de bien faire travailler ses réflexes et une bonne connaissance d'une certaine particularité de VB ...
    Ce n'est que sur elle qu'il convient de bien te pencher, pour en comprendre le pourquoi et le comment.

    Amitiés

  15. #35
    Membre régulier
    Homme Profil pro
    Contrôleur des Systèmes d'Information
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Contrôleur des Systèmes d'Information
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour, Leforestier...
    (je resterai là tant que cette discussion ne sera pas arrivée à son terme)...
    J'adore, vraiment ! ucfoutou c'est un vrai artiste!

    Citation Envoyé par ucfoutu Voir le message
    Seule la partie écrite en rouge nécessite à la fois de bien faire travailler ses réflexes et une bonne connaissance d'une certaine particularité de VB ...
    Autrement dit, je vérifie le format de saisie (avec des slash), je m'assure que c'est une date et ENFIN QUE CETTE DATE N'EST PAS AU FORMAT MM/JJ/AAAA.
    Mais quid d'une saisie en AAAA/MM/JJ ?

  16. #36
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Le principe est toujours le même, jkodio
    Il suffit de bien paramétrer... (je l'ai fait en VB6 complètement).

    Mais j'attendais une critique et elle n'est pas venue...

    Alors je vais me gifler à moi-même pour, dans mon excitation, avoir manqué de rigueur et oublié de "gratter" à fond ... honte à moi... un cas particulier m'avait complètement échappé dans le code de saisie assistée et vous ne l'avez pas vu (ouf...).

    Pas grave : je viens de corriger et, dans la foulée, d"ajouter un petit confort de plus pour l'utilisateur (je vous laisse découvrir ce confort)...

    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
    Private Sub TextBox1_Change()
      Static javais As String
      javais = gendarme("/", javais)
      Me.ActiveControl.Text = javais
    End Sub
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      If Len(Me.ActiveControl.Text) Mod 10 <> 0 Then MsgBox "ouille": Cancel = True
    End Sub
     
    Private Function gendarme(sep As String, chaine As String) As String
      gendarme = chaine
      Dim toto As String
      toto = Me.ActiveControl.Text
      Me.ActiveControl.SelStart = Len(toto)
      If Me.ActiveControl.SelStart < Len(Me.ActiveControl.Text) Then
        Me.ActiveControl.SelStart = Len(Me.ActiveControl.Text)
        Exit Function
      End If
      If Not toto Like Left("##" & sep & "##" & sep & "####", Len(toto)) Then Exit Function
      Dim refer As String
      If Len(toto) < 4 Or Mid(toto, 4, 1) <> 0 Then
        refer = toto & Mid("01/10/2000", Len(toto) + 1)
      Else
        refer = toto & Mid("01/03/2000", Len(toto) + 1)
      End If
      If Not IsDate(refer) Then Exit Function
      If Len(toto) = 4 And Val(Mid(toto, 4, 1)) > 1 Then Exit Function
      If Len(toto) = 5 And Val(Mid(toto, 4, 2)) > 12 Then Exit Function
      gendarme = Me.ActiveControl.Text
      If (Len(gendarme) = 2 Or Len(gendarme) = 5) And Len(toto) > Len(chaine) Then
         gendarme = gendarme & sep
      End If
    End Function

    J'espère que rien ne m'a échappé (c'est possible car fatigué, maintenant...)

    Bye...

  17. #37
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    Apres avoir realisé de nombreux test ,toutes les erreurs de saisie ont été détectées .
    Ces test ne sont certainement pas exhaustif ,mais pour l utilisation que je vais faire de la saisie date ds un textbox cela me suffit.
    J ai donc gardé cette procedure en l adaptant pour un textbox biensûr

    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
     
    Sub FormatDatePlusHeure()
    Dim LaDate, strFormat
     
        On Error GoTo gestion_erreur
       LaDate = InputBox("date")
       strFormat = "##/##/#### ##:##:##"
     
       If Not LaDate Like strFormat Then MsgBox "Format incorrecte": Exit Sub
       LaDate = CDate(LaDate)
    gestion_erreur:
        MsgBox " erreur n ° " & Err.Number & vbCrLf & Err.Description
         If Err.Number = 13 Then
         msgBox "Ce n est pas une date !"     
         End If
    donc si cela peut aide ....

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. controler le format d'une propriété
    Par sakia dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/12/2007, 10h40
  2. affichge format heure dans textbox
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 12h53
  3. [C#] Obtenir un format dans un textbox
    Par kenzo080 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/04/2007, 16h04
  4. Format d'un TEXTBOX
    Par guilld dans le forum Windows Forms
    Réponses: 11
    Dernier message: 21/02/2007, 18h40
  5. Controle sur format de données
    Par clairette dans le forum Langage
    Réponses: 11
    Dernier message: 03/02/2007, 15h26

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