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.NET Discussion :

transposition code vba en vb.net pour remplir combobox


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut transposition code vba en vb.net pour remplir combobox
    Bonjour à tous,

    un besoin d'aide pour transposer du code vba en vb.net !
    car en vb.net la solution items.add prends trop de temps en allant chercher une colonne excel de 8000 lignes donc j'aurais souhaité transposer le code vba qui était extrement rapide (instantanée) pour pouvoir l'utiliser en vb.net si c'est possible !

    Ci dessous le code en vba excel que je souhaiterai transformer pour un projet en vb.net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Set f = Sheets("bdd")
      Set MonDico = CreateObject("Scripting.Dictionary")
     
      For Each c In f.Range("A2:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
         MonDico(c.Value) = ""
      Next c
      temp = MonDico.keys
      Call tri(temp, LBound(temp), UBound(temp))
      Me.ComboBox1.List = temp

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Je te propose d'utiliser un SortedList au lieu d'un Dictionary car dans ce cas, les données sont automatiquement triées sur les clés (pas besoin de tri) et l'objet peut alimenter le DataSource d'un ComboBox.

    Exemple :
    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
     
     
    Dim MonDico As New SortedList
     
    ' ... ... ... 
     
    ' ... dans une procédure ...
     
            MonDico.Add("AZ", "AZERTi")                      ' Ajout d'éléments dans MonDico sous la forme ("KEY", "VALUE")
            MonDico.Add("QW", "QWERTY")
            MonDico.Add("PA", "PANZANI")
     
            ComboBox1.DataSource = MonDico.Keys      ' Toiutes les clés ordonnées sont transférées dans le Combo
     
    ' ... ... ...
    J'espère que ceci t'aidera ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Merci Phil Rob pour ton aide,

    Je dois pas être doué car, le résultat chez moi est une combobox vide à la fin ...
    Mais j'ai certainement fait une erreur ...
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            f = xlBook.Sheets("ZONE")
            range = f.UsedRange
            ProgressBar2.Maximum = range.Rows.Count
            For Me.lngCnt = 2 To range.Rows.Count
                If f.Range("A" & lngCnt).Text <> ("") Then
                    MonDico.Add((f.Range("A" & lngCnt).Text), "")
                Else
                End If
                ProgressBar2.Value = (lngCnt - 1) + 1 'incremente la ProgressBar pour chaque ligne
            Next
            ComboBox2.DataSource = MonDico.Keys
                'nettoyage doublon combobox
                Call SupprDoublon(ComboBox2)

  4. #4
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Re,

    Je suppose que tu as bien écrit (au niveau du Form) la déclaration Dim MonDico As New SortedList et que le code suivant est adapté à ce que tu souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            f = xlBook.Sheets("ZONE")
            range = f.UsedRange
            ProgressBar2.Maximum = range.Rows.Count
            For Me.lngCnt = 2 To range.Rows.Count
                If f.Range("A" & lngCnt).Text <> ("") Then
                    MonDico.Add((f.Range("A" & lngCnt).Text), "")
                Else
                End If
                ProgressBar2.Value = (lngCnt - 1) + 1 'incremente la ProgressBar pour chaque ligne
            Next
    Je peux te confirmer que la ligne ComboBox2.DataSource = MonDico.Keys est correcte.

    Que reste-t-il ? La ligne Call SupprDoublon(ComboBox2).

    Pour tester, je te propose d'écrire le code comme 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
    16
     
    ' ... ... ...
            For Me.lngCnt = 2 To range.Rows.Count
                If f.Range("A" & lngCnt).Text <> ("") Then
                    MonDico.Add((f.Range("A" & lngCnt).Text), "")
                Else
                End If
                ProgressBar2.Value = (lngCnt - 1) + 1 'incremente la ProgressBar pour chaque ligne
            Next
     
     MessageBox.Show(MonDico.Count)    ' pour s'assurer que le code précédent a bien fourni des lignes dans MonDico
     
            ComboBox2.DataSource = MonDico.Keys
     
                'nettoyage doublon combobox
            ' Call SupprDoublon(ComboBox2)  ' mettre cette ligne en commentaire pour observer le résultat ...
    ...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Après test de ton code, le message box généré affiche "7"
    Qui est au passage le nombre de ligne présent dans cette colonne et donc correspond à range.Rows.Count du code
    Par contre toujours rien dans la combobox ...

  6. #6
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Questions :

    1. As-tu bien isolé la ligne d'appel SupprDoublon() ?
      • Si oui, peux-tu m'envoyer le code de cette procédure SupprDoublon(), je la testerai avec ma SortedList.
      • Si non, il faut la soupçonner d'être responsable du problème.

    2. Quel VisualStudio utilises-tu (2010, 2013, 2015, ...) ?


    ...

  7. #7
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Suite ...

    Repensant à la procédure SupprDoublon(), je veux attirer ton attention que la SortedList n'accepte pas les doublons sur les Keys. Si le risque existe, il faut placer la ligne MonDico.Add() dans un bloc Try Catch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    '  ...
                If f.Range("A" & lngCnt).Text <> ("") Then
    Try
                    MonDico.Add((f.Range("A" & lngCnt).Text), "")
    Catch
    End Try
                Else
                End If
    '  ...
    Pour le cas où tu voudrais ôter les doublons sur les Values (quoique dans ton code ci-dessus, tu ne donnes aucune Values), le code suivant enlève ces doublons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            If MonDico.Count > 1 Then
                For i As Integer = MonDico.Count - 2 To 0 Step -1
                    If MonDico.Values(i) = MonDico.Values(i + 1) Then
                        MonDico.RemoveAt(i + 1)
                    End If
                Next
            End If
    ...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta persévérance mais toujours pareil, le résultat est une combobox vide j'ai pourtant essayé :
    - sans call Supprdoublon
    - avec le code entre try et End try
    - la colonne de 7 éléments n'a pas de doublon
    - le tout fonctionne avec ce code-ci dessous (mais le but était d'en changer ..)

    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
        Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            'scan d'un fichier excel dans le projet base de donnée listing équipement
            chemin = (My.Application.Info.DirectoryPath & "\listing.xlsx")
            TextBox2.Text = chemin
     
            xlApp.ScreenUpdating = False
            xlApp.DisplayAlerts = False
            xlBook = xlApp.Workbooks.Open(chemin)
     
            f = xlBook.Sheets("ZONE")
            range = f.UsedRange
            ProgressBar2.Maximum = range.Rows.Count
            For Me.lngCnt = 2 To range.Rows.Count
                If f.Range("A" & lngCnt).Text <> ("") Then
                    ComboBox2.Items.Add(f.Range("A" & lngCnt).Text)
                Else
                End If
                    ProgressBar2.Value = (lngCnt - 1) + 1 'incremente la ProgressBar pour chaque ligne
            Next
        End Sub

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Et je suis sur VISUAL STUDIO ULTIMATE 2012

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Et enfin par curiosité, j'ai testé sur un autre Form.vb ton code initial avec MonDico.Add("AZ", "AZERTi") etc...
    et ça fonctionne.
    Donc ce doit être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox2.Items.Add(f.Range("A" & lngCnt).Text)
    transformé en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDico.Add((f.Range("A" & lngCnt).Text), "")
    qui ne doit pas être correct, et pourtant pas de bug annoncé par VISUAL STUDIO ...

  11. #11
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    MonDico.Add((f.Range("A" & lngCnt).Text), "")
    Ce n'est pas ce code qui pose problème puisque le MonDico.Count t'a donné 7. C'est donc que le MonDico se remplit bien.

    Et si tu as testé sans l'appel de SuppDoublon, il ne reste que Combo2.DataSource = MonDico. A voir pourquoi ...

    Ne peux-tu m'envoyer ton projet (avec un jeu XLS de test) ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Je dis pas non ! mais je débute en vb.net et je ne sais pas encore extraire un projet pour le communiquer.
    que dois-je t'envoyer ?

  13. #13
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Pour transmettre un projet entier, le plus facile est de faire une copie compressée et de la mettre en pièce jointe à un message. Il ne s'agit donc pas d'une opération VisaulStudio mais bien du système Windows.
    Pour compresser le dossier, il y a :
    Nom : EnvoyerVers.jpg
Affichages : 209
Taille : 54,3 Ko

    Il faut évidemment pouvoir localiser le dossier. Il est possible de retrouver le chemin d'un dossier de projet dans les propriétés de la solution (excuse l'illustration dans une interface espagnole) :
    Nom : Chemin.jpg
Affichages : 205
Taille : 68,9 Ko

    Et pour joindre un fichier à un message, il y a juste en dessous de cette zone de texte, le bouton "Gérer les pièces jointes" :
    Nom : Joindre.jpg
Affichages : 202
Taille : 193,1 Ko


    ...

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Si j'ai bien tout compris, voici le fichier compressé(.ZIP) ci dessous
    ARIANE.zip

    pour info :
    - le fichier excel dans le ZIP est placé à coté de l'exe pour aller le chercher avec chemin = (My.Application.Info.DirectoryPath & "\listing.xlsx")
    - sur Form1 cliquer simplement sur connection à l'ouverture, j'ai désactivé les logins et mots de passe
    - sur Form3 les combobox en question avec le code initial (celui qui prends du temps) pour voir grace à la progressbar
    - sur Form 3 le Boutton7 ouvre Form2 avec un test de ton code initial MonDico.Add
    - sur Form 2 le Boutton1 ramène vers Form3
    - sur Form2 la croix en haut à droite ramène sur Form1
    - sur Form1 le boutton QUITTER ARIANE quitte l'application
    - tout ce mic-mac de boutton sert à revenir obligatoirement à la Form1 et quitter pour fermer les instances d'excel sinon elles restent ouvertes
    - enfin, ce projet n'en est qu'au début et c'est pour ça que c'est encore inachevé et brouillon !

  15. #15
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Désolé, mais ton ZIP ne contient pas les sous-dossiers du projet, voici son contenu :
    Nom : contenu.jpg
Affichages : 193
Taille : 22,1 Ko

    Je suppose que tu utilises l'organisation de stockage par défaut de VisualStudio. Dans ce cas, le projet complet est dans Documents\VisualStudio ...\Projects\Ariane. C'est ce dossier Ariane qu'il faut compresser. Mais ce chemin est bien celui désigné dans les propriétés de la solution (Solucion / Propriétés / Chemin).
    Nom : Joindre.jpg
Affichages : 198
Taille : 51,2 Ko

    Nom : Chemin.jpg
Affichages : 194
Taille : 15,9 Ko

    Nom : Localisation.jpg
Affichages : 194
Taille : 22,5 Ko

    ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Bon j'ai crée un projet allégé avec seulement la problématique via le .zip si dessous
    ARIANE TEST.zip

    En espérant que cela fonctionne maintenant !

  17. #17
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Re,

    J'ai bien reçu ton projet et je peux l'exécuter.
    Il y a effectivement un problème : je ne comprends pas pourquoi ComboBox2.DataSource = MonDico.Keys ne fonctionne pas dans ce code, alors que cela fonctionne par ailleurs. Je chercherai dans la soirée si je peux comprendre.

    En attendant, j'ai remplacé cette ligne de code par un remplissage "manuel" du ComboBox. Cela se fait en mémoire interne (sans accès à XLS) et sans nécessiter de tri (le SortedList fait le travail). Cette solution te dépannera en gardant une grande rapidité d'exécution.

    J'ai placé le remplissage de la SortedList dans un bloc Try parce que, si d'aventure, il devait y avoir un doublon dans les données, cela provoquerait une erreur. Avec le Try, celle-ci ne bloquera pas le programme.

    Attention, dans la procédure ComboBox2_SelectedValueChanged(...) tu as encore un appel à SupprDoublon(). Il faut retirer ces appels dès lors que tu travailles avec la SortedList.


    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
     
    ' ... ... ...
            For Me.lngCnt = 2 To range.Rows.Count
                If f.Range("A" & lngCnt).Text <> ("") Then
                    Try    ' Adsn un Try pour éviter les erreurs d'exécutions sur doublons.
                        MonDico.Add((f.Range("A" & lngCnt).Text), "")
                        '           ComboBox2.Items.Add(f.Range("A" & lngCnt).Text)
                    Catch
                    End Try
                Else
                End If
                ProgressBar2.Value = (lngCnt - 1) + 1 'incremente la ProgressBar pour chaque ligne
            Next
     
            '  *** '  ComboBox2.DataSource = MonDico.Keys
     
            ' Puisque le DataSource ne focntionne pas, je le remmplace par les 3 lignes suivante :
            For I As Integer = 0 To MonDico.Count - 1
                ComboBox2.Items.Add(MonDico.Keys(I))
            Next
     
    ' ... ... ...
    J'espère que ceci te permettra d'avancer ...

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    ok, j'essaye ...

    Comme tu as put le voir, il y a plusieurs ComBobox en cascade et c'est surtout pour charger la 3e combobox (apres choix dans la 2e) que cela prends du temps

    Et oui je vais supprimer le code de Supprdoublon

  19. #19
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Eureka qu'il a dit, parait-il ...

    La propriété Sorted du ComboBox est à TRUE dans ton programme. Ce n'est pas sa valeur par défaut. Si tu la remets à FALSE, alors le code ComboBox2.DataSource = MonDico.Keys fonctionne parfaitement et te dispense de ma boucle de dépannage.

    Nom : Sorted.jpg
Affichages : 197
Taille : 66,0 Ko

    Il est inutile de modifier cette propriété du ComboBox puisque la SortedList est toujours ordonnée sur les KEYS.

    Si dans un autre ComboBox tu présentes les Values (ComboBox2.DataSource = MonDico.Values), ou d'autres valeurs, et que tu veux qu'elles soient ordonnées, alors d'accord d'affecter TRUE à la propriété Sorted du ComboBox. Mais dans ce cas, il ne faut pas appeler un procédure de tri, c'est le ComboBox a ce qu'il faut.
    Enfin, si je peux me permettre, pour modifier les valeurs par défaut des propriétés des composants, il est préférable de le faire dans le code ComboBoxN.Sortde = True, généralement dans le Form_Load. S'il en avait été ainsi avec le ComboBox2, j'aurais constaté le problème ce matin ...

    ...

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 10
    Points
    10
    Par défaut
    Effectivement ça marche mieux !
    Le nouveau problème c'est que le chargement de chaque Combobox affiche un item et donc les autres combobox se lancent aussi ...
    Et pas de gain de temps avec ce nouveau code ou en tout cas pas instantanée comme sur VBA excel ...
    Merci cependant pour ton implication !

Discussions similaires

  1. [PPT-2010] Récupérer le code VBA d'un modèle pour incorporer dans Excel
    Par fidecourt dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 01/02/2011, 09h35
  2. traduire un code vba vers vb.net
    Par houssine77100 dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/11/2010, 13h15
  3. [XL-2003] code VBA pr choix magasion pour impression
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2009, 14h55
  4. Inclure du code vba dans vb.net
    Par l_achraf dans le forum VB.NET
    Réponses: 8
    Dernier message: 20/04/2009, 19h53
  5. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30

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