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 :

intégrer les données d'une listview dans une feuille excel


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Points : 61
    Points
    61
    Par défaut intégrer les données d'une listview dans une feuille excel
    salut à tous.

    Mon projet sous visual basic 2010 express avance à grand pas et en partie grace à votre aide et je vous en remercie.

    Une fois de plus , j'ai besoin de vos lumières.

    Voilà je possède une listview dans laquelle il y a 2 colonnes. La première correspond aux noms des artites et la seconde, à celle des titres de ces artistes.

    Ce que je voudrais c'est mettre ces données dans une feuille de calcul excel dans un formatage assez particulier. Je m'explique :

    ma page excel sera sur 3 colonnes
    en A1 je voudrais mettre le nom du premier artiste de ma liste puis en dessous, en A2, le titre correspondant.

    En A3, si la seconde ligne de ma listView est identique à la première pour l'artiste, je voudrais le titre de la seconde ligne. et ainsi de suite.

    Si le nom de l'artiste change dans la listView, je voudrais passer une ligne dans ma feuille excel et mettre le nouveau nom de l'artiste puis dans la cellule du dessous le titre correspondant

    enfin, arrivé à la cellule A60 par exemple dernière cellule en bas de la page, je voudrais que cela continu mais dans les cellules de la colne B et ainsi de suite jusqu'à la cellule B60 pour passer aux cellules de la colonne C

    arrivé à la C60, il faudrait continuer en A61 etc... etc...

    Est ce que ceci est possible ou pas car je voudrais éditer un catalogue des titre disponibles avec ce type de mise en page pour mon programme de gestion des karaokés.

    Pour info, la listeView est remplit à l'aide des nom des fichiers qui sont contenus dans mon répoertoire de karaokés.

    Merci par avance pour vos réponses qui j'en suis persuadé me permettrons de mener à bien ce projet.

    @+ Martipit

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Bonsoir.

    Je me demande si avec ce sujet, ce que je demande n'est pas tout simplement impossible ou bien qu'il demande un boulot colossale.

    Maintenant, peut-être y a-t-il une autre idée pour réaliser mon catalogue des titre à laquelle je n'ai pas pensé tout simplement

    J'espre quand même trouver une solution à ce sujet qui m'empêche actuellement de finaliser mon projet comme j'aimerais qu'il soit.

    Merci par avance pour vos réponses.

    @+ Martipit

  3. #3
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    bonjour Martipit
    Sans entrer dans les details de ta problematique mais il est possible de copier ton listview comme demande....
    operation 1 :
    - rapatrier titre et auteur à la verticale dans worksheet1
    operation 2 :
    - recopier ensuite le listview ainsi "rapatrie" dans excel en plage de 60 elements cote à cote dans worksheet 2
    le code qui feras peut etre ton bonheur........avec un listview 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
    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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
     
     
    Imports System
    Imports System.IO
    Imports System.Runtime.CompilerServices
    Imports System.Reflection ' For Missing.Value and BindingFlags
    Imports System.Runtime.InteropServices ' For COMException
    Imports OXL = Microsoft.Office.Interop.Excel  'alias d'excel interop
     
     
     
    Public Class frmMartin
     
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            ' Disable automatic sorting to enable manual sorting.
            Me.ListView1.Sorting = SortOrder.None
            Me.ListView1.View = View.Details
            ' Add 4 columns and set their text.
            Me.ListView1.Columns.Add(New ColumnHeader)
            Me.ListView1.Columns(0).Text = "Auteur "
            Me.ListView1.Columns(0).Width = 100
            ListView1.Columns.Add(New ColumnHeader)
            ListView1.Columns(1).Text = "Titre "
     
        End Sub
        Private Sub btnLoadItems_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadItems.Click
            ' Cree les ListViewItems .
            Dim ListLVItem As List(Of ListViewItem) = New List(Of ListViewItem)
            Dim LVItem As ListViewItem
            Dim sn As String
            For k As Integer = 0 To 270
                sn = (k + 1).ToString
                LVItem = New ListViewItem(New String() {"Auteur" & sn, "Titre" & sn}, -1, Color.Empty, Color.Yellow, Nothing)
                ListLVItem.Add(LVItem)
            Next
     
     
     
            'Add Items 
            Me.ListView1.Items.AddRange(ListLVItem.ToArray)
            ' Set the location and size of the ListView control.
            Me.ListView1.Name = "listView1"
            Me.ListView1.TabIndex = 0
            ' Enable editing of the items in the ListView.
            Me.ListView1.LabelEdit = True
            Me.ListView1.MultiSelect = True
            Me.ListView1.FullRowSelect = True
        End Sub
     
        Private Sub btnCopyToWorkBook_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopyToWorkBook.Click
            Automation_UseArrayBIS()
        End Sub
        Private appChemin As String = Directory.GetCurrentDirectory & "\"
        Private monFichier As String = "book.xls"
     
     
        Private Sub Automation_UseArrayBIS()
            'Cree un DataArray  .
            Dim nbLine As Integer = Me.ListView1.Items.Count
            Dim nbColumn As Integer = Me.ListView1.Items.Item(0).SubItems.Count
            Dim DataArray(nbLine, nbColumn) As String
     
            For i As Integer = 0 To Me.ListView1.Items.Count - 1
                For j As Integer = 0 To Me.ListView1.Items(i).SubItems.Count - 1
                    DataArray(i, j) = Me.ListView1.Items(i).SubItems(j).Text
                Next
            Next
     
            Dim appExcel As OXL.Application
            Dim wBook As OXL.Workbook
            Dim wSheet1 As OXL.Worksheet
            Dim wSheet2 As OXL.Worksheet
            Dim misValue As Object = System.Reflection.Missing.Value
            'if Excel is already running ,close it.
            If appExcel IsNot Nothing Then
                releaseObject(appExcel)
                ' Force .NET to perform garbage collection.
                System.GC.Collect()
            End If
            Try
     
     
                'Start a new workbook in Excel.
                appExcel = New OXL.Application
                wBook = appExcel.Workbooks.Add
                appExcel.Visible = True
     
                'Active wsheet1
                wSheet1 = wBook.Worksheets(1)
                wSheet1.Activate()
                Dim rngSource As OXL.Range = Nothing
     
                '---------copie valeurs en "colonne"---------- 
                Dim h As Integer = 0
                For l As Integer = 0 To DataArray.GetUpperBound(0)
                    h = h + 1
                    rngSource = wSheet1.Cells(h, 1)
                    rngSource.Value = DataArray(l, 0)
                    h = h + 1
                    rngSource = wSheet1.Cells(h, 1)
                    rngSource.Value = DataArray(l, 1)
     
                Next
     
                ' 
                ' recupere totalite du  rngSource
                rngSource = wSheet1.Range(wSheet1.Cells(1, 1), wSheet1.Cells(h, 1))
     
     
                '---------Les rngDest seront dans  wSheet2----------
                wSheet2 = wBook.Worksheets(2)
                Dim rngDest As OXL.Range = Nothing
                ' 
                ' copie "plages de 60 elements" 
                ' dans  worksheet2 partant de ligne 1 .
                ' 
                Dim espacePlage As Integer = 1
                Dim startPlage As OXL.Range = Nothing
                Dim endPlage As OXL.Range = Nothing
                Dim rngTemp As OXL.Range = Nothing 'un range worker
                ' 
                ' parcourt rngFinal step 60 
                ' 
                For m As Integer = 1 To rngSource.Rows.Count Step 60
                    startPlage = rngSource.Item(m, 1)
                    endPlage = rngSource.Item(m + 60, 1)
                    rngTemp = wSheet1.Range(startPlage.Address & ":" & endPlage.Address)
                    ' 
                    'sette  rngFinal dans  wSheet2
                    ' 
                    rngDest = wSheet2.Cells(1, espacePlage)
     
                    'copie  rngTemp vers rngFinal
                    ' 
                    rngTemp.Copy(rngDest)
     
                    'mise en forme de chaque plage 
                    ' cette ligne de code suffit à tout :format speciaux d'excel.... 
                    ' rngFinal.EntireColumn.AutoFormat(OXL.XlRangeAutoFormat.xlRangeAutoFormatColor2)
     
                    rngDest.EntireColumn.AutoFit()
                    rngDest.EntireColumn.ColumnWidth = 25
                    rngDest.EntireColumn.VerticalAlignment = OXL.XlVAlign.xlVAlignCenter
                    rngDest.EntireColumn.HorizontalAlignment = OXL.XlHAlign.xlHAlignCenter
     
                    rngDest.EntireColumn.Interior.Color = ColorTranslator.ToOle(Color.BlanchedAlmond)
                    rngDest.EntireColumn.Font.Name = "times new roman"
                    rngDest.EntireColumn.Font.Size = 16
                    rngDest.EntireColumn.Font.Bold = True
                    rngDest.EntireColumn.Font.Color = ColorTranslator.ToWin32(Color.CornflowerBlue)
                    ' 
                    'espace visuel entre plage de 2
                    ' 
                    espacePlage = espacePlage + 5
                Next
     
                'Save the workbook and quit Excel.
                ' 
                wBook.SaveAs(appChemin & monFichier)
                ' 
     
            Catch ex As System.Runtime.InteropServices.COMException
                MessageBox.Show(ex.Source & " " & ex.Message & " " & Hex(ex.ErrorCode))
            Finally
                releaseObject(appExcel)
                releaseObject(wBook)
                releaseObject(wSheet1)
     
     
            End Try
        End Sub
        ' Renvoi les derniers 16 bits de HRESULT = Err code.
        ' ces 16 bits contiennent code d'error Com d'Excel . 
        Function GetErrCode(ByVal hresult As Integer) As Integer
            Return hresult And &HFFFF
        End Function
     
        Private Sub releaseObject(ByVal obj As Object)
            Try
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
                obj = Nothing
            Catch ex As Exception
                obj = Nothing
            Finally
                ' Force .NET to perform garbage collection.
                System.GC.Collect()
            End Try
        End Sub
     
     
     
    End Class
    il suffit à la fin d'effacer de "clearer" le worksheet1(wsheet.clearcontents).....
    bon code..................

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Bjr

    Tout d'abord, merci de te pencher sur mon soucis.

    Je suis en trainde regarder les code que tu me propose. Effectivement, ma demande semble générer un code assez lourd, ce que je ne pensais pas à l'origine.
    néanmoins lorsque j'intègre le code que tu m'a généreusement mis à disposition j'ai une erreur pour laligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports OXL = Microsoft.Office.Interop.Excel  'alias d'excel interop
    il est souligné de couleur verte "OXL = Microsoft.Office.Interop.Excel" et le message suivant apparait :
    L'espace de noms ou le type spécifié dans les imports 'Microsoft.Office.Interop.Excel' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est définit et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autre alias.
    Ensuite dans le code toutes les lignes ou appariassent OXL sont soulignées en bleu. d'après ce que j'ai pus lire de droite et de gauche, je dois avoir un coposant qui ne doit pas être installé

    Je vois cela et te tiens au courant.


    Par ailleurs, comme certains me l'ont fait remarqué, peut être serait 'il plus faciel de passer par une base de donnée dans laquelle se trouverait donc 2 colonnes : L'une pour les artistes et l'autre pour les titres. mais là, en Bdd, je n'y connais absoluement rien....

    Merci.

    @+ Martipit

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    Pourquoi passer par la listview
    si tu as un code qui insererre les données dans ta listview inserrre
    les données dans le fichier excel
    peux tu montrer ton code comment tu remplis ta listview

  6. #6
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    bonjour martinpit

    Tu dois ajouter une reference à MS Office Excel :
    -Microsoft Excel 12 Object Library(office 2007) ou 14(office 2010)
    bon code.....

    Edit
    rebonjour martinpit

    C'est dans le panneau composant Com que ca se trouve
    bon code.....

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Salut à tous.

    Pour Shayw, voici le code que j'utilise pour remplir ma listeview :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            'Remplit le Catalogue
            Dim file As String
            Dim fileNames = My.Computer.FileSystem.GetFiles(TbCheminFichiers.Text + "\", FileIO.SearchOption.SearchAllSubDirectories, "*.*")
            ListView1.Items.Clear()
            For Each fileName As String In fileNames
                Dim parts() As String = fileName.Split("-")
                ListView1.Items.Add(IO.Path.GetFileNameWithoutExtension(parts(0)))
                ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(IO.Path.GetFileNameWithoutExtension(parts(1)))
            Next

    @ MABROUKI, je regarde ça !

    @+ Martipit

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut
    écrit sous vb2008
    je copie dans une page excel sans lire la listview

    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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    Imports System.IO
      Imports excel = Microsoft.Office.Interop.Excel
    Public Class Form1
     
      Public Class chanteuretchanson
            Public name As String
            Public chanson As New List(Of String)
        End Class
     
        Public listchanteurs As New List(Of chanteuretchanson)
     
       Private Sub BuildListchanteurs(ByVal pathfile As String)
            Dim artist As String
            Dim singersongs As New chanteuretchanson
            artist = String.Empty
            Try
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(pathfile, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*")
     
                    Dim parts As String()
                    parts = foundFile.Split("-"c)
                    If IO.Path.GetFileNameWithoutExtension(parts(0)) <> artist Then
                        If singersongs.chanson.Count > 0 Then
                            listchanteurs.Add(singersongs)
                        End If
                        singersongs = New chanteuretchanson
     
                        artist = IO.Path.GetFileNameWithoutExtension(parts(0))
                        singersongs.name = artist
                    End If
                    singersongs.chanson.Add(IO.Path.GetFileNameWithoutExtension(parts(1)))
                Next
                listchanteurs.Add(singersongs)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
     
        Private Sub WriteToExcel()
            Dim objexcel As New excel.Application
            Dim xlBook As excel.Workbook
            Dim xlworksheet As excel.Worksheet
            Dim numbersrows As Integer
            Dim nextrow As Integer
            Dim letter As Char
            Dim counterletter As Integer
            Dim firstrow As Integer
            Dim r As excel.Range
            Try
                xlBook = objexcel.Workbooks.Add
                xlworksheet = CType(xlBook.ActiveSheet, excel.Worksheet)
     
                numbersrows = 1
                firstrow = 1
                counterletter = 0
     
                letter = "A"c
                With xlworksheet
                    'numbers of used rows  in worksheet
     
                    For iter = 0 To listchanteurs.Count - 1
     
                        .Range(letter & (numbersrows).ToString).Value = listchanteurs(iter).name
                        For iter2 = 0 To listchanteurs(iter).chanson.Count - 1
                            numbersrows += 1
                            r = CType(xlworksheet.Rows(numbersrows), excel.Range)
                            If r.PageBreak = excel.XlPageBreak.xlPageBreakAutomatic Then
                                nextrow = numbersrows
                                numbersrows = firstrow
                                'pass to the next column
                                counterletter += 1
                                letter = Convert.ToChar(Convert.ToInt32("A"c) + counterletter)
                                If letter = "D" Then
                                    firstrow = nextrow
                                    numbersrows = nextrow
                                    counterletter = 0
                                    letter = "A"c
                                End If
                            End If
                            .Range(letter & (numbersrows).ToString).Value = listchanteurs(iter).chanson(iter2)
                        Next
                        If CType(xlworksheet.Rows(numbersrows + 2), excel.Range).PageBreak = excel.XlPageBreak.xlPageBreakAutomatic Or CType(xlworksheet.Rows(numbersrows + 1), excel.Range).PageBreak = excel.XlPageBreak.xlPageBreakAutomatic Then
                            numbersrows = firstrow
                            nextrow = numbersrows
                            'pass to the next column
                            counterletter += 1
                            letter = Convert.ToChar(Convert.ToInt32("A"c) + counterletter)
                            If letter = "D" Then
                                firstrow = nextrow
                                numbersrows = nextrow
                                counterletter = 0
                                letter = "A"c
                            End If
                        Else
                            numbersrows += 2
                        End If
                    Next
                End With
                objexcel.Visible = True
                objexcel = Nothing
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
        End Sub
     
       'appelle les   BuildListchanteurs et WriteToExcel  où  tu as  besoin
       ' important  BuildListchanteurs doit etre appellé en premier 
        'ex dans le load event
         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
           BuildListchanteurs(TbCheminFichiers.Text & "\")
            WriteToExcel()
      end sub 
     
    End Class

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Salut Shayw

    Je viens de tester ton code. Celui-ci fonctionne bien mais par contre avec environ 2.500 fichiers à trier ainsi, l'ordinateur met un certain temps pour effectuer la mise en page et l'écriture dans excel.

    Comme tu en avais parlé dans ton MP, il serait peut être préférable de passer par une BDD avant l'intégration dans excel.

    Donc si je pars sur cette hypothèse, il faut faire une base avec 2 colonnes la première avec l'artiste et la seconde avecle titre qui se charge automatiquement au lancement de l'application.

    Après voir comment faire pour 'intégrer sous la forme demandée dans excel.

    A ce que je vois, j'ai encore du pain sur la planche lol.

    Merci à toi

    Je te tiens au courant de la creation de ma BDD

    @+ Martipit

Discussions similaires

  1. [Débutant] Mettre une listBox dans une colonne d'une listView
    Par Tom57300 dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/04/2014, 15h40
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. Intégrer les données de plusieurs fichiers dans une table
    Par soad029 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2007, 03h57
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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