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

VB 6 et antérieur Discussion :

[VB]Problème d'effacement dans une TextBox


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut [VB]Problème d'effacement dans une TextBox
    Comme vous m'avez verouillez mon message ,pour information j'ai trouver ce que c'été qu'un selstart.

    Je l'avais mis dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Text1_Change(Index As Integer)
    'exemple pour format xx:xx
    Dim Valeur As Byte
    Text1(i - 1).MaxLength = 5 'nb caracteres maxi dans textbox
    Text1(i - 1).SelStart = 5
    Valeur = Len(Text1(i - 1))
    If Valeur = 2 Or Valeur = 5 Then Text1(i - 1) = Text1(i - 1) & ":"
    End Sub
    Mais cela ne marche toujours pas, car quand je veux effacer les minutes avec la touche effacer de mon clavier ça marche mais lorsque je veux effacer les heures. Il me met : 1::, la c'etait 14:20, le 20 j'ai bien effacer et pour effacer le 14 j'ai du faire la fleche gauche du clavier pour arriver devant le : puis quand j'ai presser la touche effacer il ma mit : 1::

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Personne ne peux m'aider. S'il vous plait.
    Le problème je pense c'est qu'il me rajoute un ':'. Car la j'ai effacer le 1 de '1::' et il me met ':::' . Pouvez-vous m'aider à comprendre mon erreur.


    Merci d'avance

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Et quand je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Valeur = 2 Then Text1(i - 1) = Text1(i - 1)
    Il m'efface bien le contenu lorsque je tape sur le bouton retour en arrière.

    Et quand je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Valeur = 2 Then Text1(i - 1) = Text1(i - 1) & ":"
    il me fait mon erreur.

    Pouvez-vous m'aider?

    Merci d'avance

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Comme tu m'as dit "A JAMAIS" par message privé ...., j'ai pris çà au pied de la lettre, non ?

    Plus sérieusement : j'ai en ce qui me concerne décidé :
    1) de te laisser dans ces conditions patauger un peu...
    2) de te servir ensuite non le code exact que tu attends (je ne veux pas que tu recopies n'importe quoi sans comprendre) mais quelquechose de très similaire, que tu devras adapter à ton cas de figure (ce ne sera pas compliqué si tu comprends ce qui te sera servi)
    3) de ne jamais aller plus loin dans les explications du fonctionnement de cette syntaxe.

    Je te servirai donc celà dans..... (je tire à pile ou face....) ... 1 heure.


  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je suis en retard mais pas par ma faute (impossible d'accéder au site jusuqu'à maintenant).

    Alors voilà : le code qui suit est conçu pour que l'utilisateur :

    1) saisisse dans 3 formats possibles
    2) que le séparateur (ici un /) s'ajoute sans son intervention
    3) qu'il soit "bloqué" en chemin dès qu'une frappe est incohérente, par exemple un 13 pour un mois ou un 30 pour un jour de février)
    4) qu'il puisse faire des effacements arrières qui comprendront l'emplacement d'un séparateur
    5) que la cohérence de la saisie se fasse tout au long de la saisie (et pas seulement à la fin)
    Pour des heures, le raisonnement et le mécanisme seront les mêmes, sauf que les incohérences consistront par exemple à frapper 25 pour une heure ou plus de 59 pour des minutes)

    Si tu arrives à comprendre la syntaxe qui suit pour la saisie d'une date, tu n'auras aucune difficulté à écrire ta syntaxe pour la saisie d'heures...
    Si tu n'y parviens pas, cela voudra simplement dire que tu dois tout recommencer en VB, depuis la case départ....
    Une autre fois : ne comptes pas sur moi pour écrire la syntaxe (c'est ultra facile) dont TU as besoin.

    Pour cet exemple :

    sur une forme :

    - un groupe d'options indexées :
    CHOIXTYPDATE(0) (avec .caption = "jj/mm/aaaa")
    CHOIXTYPDATE(1) (avec .caption = "mm/jj/aaaa")
    CHOIXTYPDATE(2) (avec .caption = "aaaa/mm/jj")
    - un textbox DATESAISIE (avec .text = "") pour la saisie des dates

    Code à insérer dans ta form : le code qui suit
    A l'exécution : tu choisis l'une des 3 options puis tu saisis ta date, avec tous les essais que tu veux...

    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
    Private Sub DATESAISIE_KeyPress(KeyAscii As Integer)
      DATESAISIE.Tag = "/" 'j'ai mis celà pour toi bb62 (chez moi, je peux choisir entre plusieurs séparateurs avec des options qui cangent mon .tag)
     'remarquez que j'évite d'utiliser les sendkeys, plus faciles mais souvent générateurs, sous VB, d'une
     'modification aléatoire de l'état du clavier (on perd fréquemment l'état "pavé numérique habilité")
      sep$ = DATESAISIE.Tag ' on a mémorisé dans la propriété tag lors du choix du séparateur
      If sep$ = "" Then sep$ = "/"
      DS = DATESAISIE.Text: chkey = Chr(KeyAscii): ou = DATESAISIE.SelStart + 1
      If KeyAscii = 8 Then  'il faut permettre les effacements arrières
        If Right$(DS, 1) = sep$ Then
          'si le caractère avant est le séparateur, il faut reculer d'un rang de plus
          DATESAISIE.Text = Left$(DS, ou - 3): KeyAscii = 0: DATESAISIE.SelStart = ou - 3
        End If
        Exit Sub
      End If
      If CHOIXTYPDATE(2).Value = False Then '(on est donc dans le cas d'un format jj/mm/aaaa ou mm/jj/aaaa)
        If (ou = 3 Or ou = 6) And chkey <> sep$ Then Beep: KeyAscii = Asc(sep$): Exit Sub
        If ou > 10 Then Beep: KeyAscii = 0: Exit Sub 'la date ne saurait comporter plus de 10 caractères !
        ' on s'assure de rester en format jj/mm/aaaa car mm/jj/aaaa est lui aussi reconnu comme date valide
        If CHOIXTYPDATE(0).Value = True Then
          If ou = 1 And Val(chkey) > 3 Then Beep: KeyAscii = 0:  Exit Sub
          If ou = 4 And Val(chkey) > 1 Then Beep: KeyAscii = 0: Exit Sub
          If ou = 5 And Val(Right$(DS, 1) & chkey) > 12 Then Beep: KeyAscii = 0: Exit Sub
        Else
          If ou = 4 And Val(chkey) > 3 Then Beep: KeyAscii = 0:  Exit Sub
          If ou = 1 And Val(chkey) > 1 Then Beep: KeyAscii = 0: Exit Sub
          If ou = 2 And Val(Right$(DS, 1) & chkey) > 12 Then Beep: KeyAscii = 0: Exit Sub
        End If
        'on va maintenant devoir s'assurer qu'une comparaison se fait toujours avec une année bissextile
        'pour permettre, jusqu'au 9ème caractère, un 29 février. le 10ème caractère est filtré par lui-même
        If ou <= 8 Then
          'les dates de références ci-dessous ne sont pas choisies au hasard (construites de telle
          'façon que les concaténations qui suivent sont toujours "opérationnelles")
          'If CHOIXTYPDATE(0).Value = True Then dtcomp$ = "01/01/0096" Else dtcomp$ = "11/10/0096"
          If CHOIXTYPDATE(0).Value = True Then
             dtcomp$ = "01/01/0096"
          Else
             If chkey = "3" Then dtcomp$ = "11/00/0096" Else dtcomp$ = "11/01/0096"
          End If
        Else
          If Val(chkey) Mod 2 = 0 Then milesime$ = "4" Else milesime$ = "2"
          If CHOIXTYPDATE(0).Value = True Then
            dtcomp$ = "01/01/00" & chkey & milesime$
          Else
            dtcomp$ = "11/10/00" & chkey & milesime$
          End If
        End If
        If IsDate(Left$(DS, ou - 1) & chkey & Mid$(dtcomp$, ou + 1)) = False Then Beep: KeyAscii = 0: Exit Sub
        If ou = 2 Or ou = 5 Then 'on ajoute un séparateur après le 2ème et après le 5ème caractère
          DATESAISIE.Text = DS & chkey & sep$: DATESAISIE.SelStart = Len(DATESAISIE.Text): KeyAscii = 0
        End If
      Else '(on est alors dans le cas d'un format aaaa/mm/jj)
        'TOUT EST ALORS BEAUCOUP MOINS COMPLEXE A TRAITER
        If (ou = 5 Or ou = 8) And chkey <> sep$ Then Beep: KeyAscii = Asc(sep$): Exit Sub
        If ou > 10 Then Beep: KeyAscii = 0: Exit Sub 'la date ne saurait comporter plus de 10 caractères !
        If ou <= 8 Then 'voir mes commentaires plus haut sur le choix des dates de référence
          dtcomp$ = "0001/01/01"
        Else
          If chkey = "0" Then dtcomp$ = "0001/01/01" Else dtcomp$ = "0001/01/10"
        End If
        If IsDate(Left$(DS, ou - 1) & chkey & Mid$(dtcomp$, ou + 1)) = False Then Beep: KeyAscii = 0: Exit Sub
        If ou = 4 Or ou = 7 Then 'on ajoute un séparateur après le 4ème et après le 7ème caractère
          DATESAISIE.Text = DS & chkey & sep$: DATESAISIE.SelStart = Len(DATESAISIE.Text): KeyAscii = 0
        End If
      End If
      'on complète par un contrôle de longueur (10) au lostfocus - voir ci-après
    End Sub
     
     
     
    Private Sub DATESAISIE_LostFocus()
      'on ne permet de quitter ce champ que si la saisie est complète ou nulle
      If Len(DATESAISIE.Text) < 10 And DATESAISIE.Text <> "" Then Beep: DATESAISIE.SetFocus
    End Sub
    Tu as de la chance : j'avais commenté suffisamment tout celà

    A toi donc de jouer et de comprendre (si tu le peux). Sinon... Bye Bye


  6. #6
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    retour à l'envoyeur (il se reconnaitra !), pourquoi faire simple quand on peut faire compliqué

    Ca me désespère quand je vois un entêtement pareil et tout ce temps perdu par tout le monde, alors qu'il existe des contrôles faits exprès pour ce genre de chose (Maskedit, DTPicker)

    Je ne sais pas ce qui me retient de verrouiller à nouveau ce sujet

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    C'est exprés : il veut savoir comment fonctionne selstart, faire des effacements arrière, etc... et dit plus tard qu'il a trouvé selstart et l'a même mis dans son code. Alors, balladons-le avec les connaissances qu'il dit avoir acquises, pour voir...

    EDIT :
    J'ajoute que, dans tout ce long code, il n'y a qu'un tout petit bout qui répond à sa question. Le trouvera-t--il ??
    :

  8. #8
    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
    Z'êtes vraiment pas gentils avec bb62... Voyez pas qu'il galère ? Vous zallez le laisser errer longtemps sur le forum à la recherche d'une bonne âme ?

    Très cher bb62,
    Comme je ne connais pas SelStart j'utiliserais ce que je connais. Mais comme je n'ai rien compris de ce que tu voulais au final, je ne peux pas t'aider...

    Allez, explique.

    Toi, jmfmarques, laisse-nous travailler

    A+

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Jé pas cheché! Il/elle ma anvoillé un mp non sollicitait...pas té joli.

  10. #10
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par jmfmarques
    C'est exprés : il veut savoir... et dit plus tard qu'il a trouvé selstart et l'a même mis dans son code.
    Citation Envoyé par ouskel'n'or
    Voyez pas qu'il galère ? A+

  11. #11
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    En fait j'ai une TextBox, Text1(0). Cette Textbox permet à l'utilisateur de mettre une heure par exemple 10:50 tout marcher sauf que quand je faisait un retour arrière il m'afficher : 1::, la c'etait 10:50, le 50 j'ai bien effacer et pour effacer le 10 j'ai du faire la fleche gauche du clavier pour arriver devant le : puis quand j'ai presser la touche effacer il ma mit : 1::.

    Alors pourrais-tu m'aider?

    Merci d'avance.

  12. #12
    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
    Bref, si tu as 14:31, tu veux obtenir 14, c'est ça ?

    A+

    PS - N'ai pas de vague à l'âme, bb62, ils ne se rendent même pas compte que c'est toi qui rames...

  13. #13
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Non je veux obtenir 14:31.

    Mais imaginons que le gars se soit tromper et au de 14:31, il aurait voulut mettre 15: 40, il fait un retour en arrière et efface bien le 31 mais pas le 14 car lorsqu'il veux effacer le 14 cela met 1:: au lieu de 1

    Je sais pas si je me suis fait comprendre.

    Merci d'avance.

  14. #14
    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
    Bien ! Comme je t'ai dit, je fais avec ce que j'ai. Avec un textbox classique, l'effacement fonctionne caractère par caractère, donc, pas de pb. Comme tu en as un, c'est que tu ne disposes pas des mêmes possibilités avec tes textbox créés en dynamique (?).
    Quels sont les événements dont tu disposes à part "Text1_Change" ?

    A+

  15. #15
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    C'est bon :trouve: .

    Merci à tout le mond je fait voir mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Text1_Change(Index As Integer)
    'exemple pour format xx:xx
    Dim Valeur As Byte
    Text1(i - 1).MaxLength = 5 'nb caracteres maxi dans textbox
    Text1(i - 1).SelStart = 5
    Valeur = Len(Text1(i - 1))
    If Valeur = 2 Or Valeur = 5 Then Text1(i - 1) = Text1(i - 1) & ":"
    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
    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
     
    Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
     
       If KeyAscii >= 10 And KeyAscii <> 8 And mShift = 0 Then
          If Index = Text1.Count - 1 Then
             i = Text1.Count
             Load Text1(i)
             Load Text2(i)
     
             Text1(i) = ""
             Text2(i) = ""
     
             Text1(i).Top = Text1(i - 1).Top + Text1(0).Height
             Text2(i).Top = Text2(i - 1).Top + Text2(0).Height
             Text1(i).Visible = True
             Text2(i).Visible = True
             Text1(i - 1).SetFocus
          Else
             i = Index + 1
             Text1(i - 1).SetFocus
          End If
        End If
     
       If KeyAscii = vbKeyTab And KeyAscii <> 8 And mShift = 0 Then
         If Not IsDate(Text1(i - 1).Text) Then
            MsgBox "Format incorrect"
            Text1(i - 1) = ""
            Text1(i - 1).SetFocus
            Exit Sub
         Else
           MsgBox "Format correct"
            Text2(i - 1).SetFocus
        End If
      End If
     
      DS = Text1(i - 1).Text: chkey = Chr(KeyAscii): ou = Text1(i - 1).SelStart + 1
      If KeyAscii = 8 Then  'il faut permettre les effacements arrières
        If Right$(DS, 1) = ":" Then
          'si le caractère avant est le séparateur, il faut reculer d'un rang de plus
          Text1(i - 1).Text = Left$(DS, ou - 3): KeyAscii = 0: Text1(i - 1).SelStart = ou - 3
        End If
        Exit Sub
      End If
     
    End Sub
    Encore Merci à tout le monde malgrès que ça été une ambience morose sur mon sujet.

    A++

    Et Big bisous à tous.

  16. #16
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Mais arrete donc de reinventer la roue !!!

    Il y a des controles qui sont fait pour ca, alors, ou tu t'en sers, ou tu te débrouilles, on a assez perdu de temps comme ca sur ce sujet

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bien bb ! bien :

    Je vois que tu as fini par trouver ce tout petit bout (il n'était pas vraiment caché : il était même commenté) de code dans tout le long code passé...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Right$(DS, 1) = ":" Then 
          'si le caractère avant est le séparateur, il faut reculer d'un rang de plus 
          Text1(i - 1).Text = Left$(DS, ou - 3): KeyAscii = 0: Text1(i - 1).SelStart = ou - 3 
     End If
    Celà t'a-t-il permis d'analyser, au passage, tout le reste ? Tant mieux si oui...

    mais pourquoi donc as-tu, dans ton copier-coller, gardé cette variable ou qui n'a rien à voir avec le reste de ce que tu fais ?? Moi, je m'en servais ailleurs, mais toi ??? tu aurais pu t'exprimer autrement, non ???

    : :

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

Discussions similaires

  1. Problème pour calculer un % dans une TextBox
    Par Patrick-P dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2013, 16h46
  2. Problème d'écriture dans une TextBox
    Par jeremy5490 dans le forum C#
    Réponses: 6
    Dernier message: 09/06/2011, 11h28
  3. Problème liens cliquables dans une TextBox
    Par Lisandro09 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 12/06/2009, 11h59
  4. Problème avec le passage à la ligne dans une Textbox
    Par iFlo1 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/03/2009, 13h47
  5. Problème de caractères accentués dans une textbox
    Par Dje33510 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/02/2009, 09h34

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