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 :

Vitesse d'exécution du code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administratif
    Inscrit en
    Mars 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administratif

    Informations forums :
    Inscription : Mars 2018
    Messages : 10
    Par défaut Vitesse d'exécution du code
    Bonjour,

    J'ai créé un fichier qui permet d'établir chaque mois les avis d'échéance de toutes les personnes à qui nous louons un appartement.

    Il est construit tel que :

    - Le premier onglet "MODELE" est un avis d'échéance vierge qui sert de trame.
    - Le deuxième onglet "SORTIE" est la même chose mais pour la sortie des locataires.
    - Le troisième onglet "LISTE" est une base de données de tous les logements que nous avons avec les données des personnes qui l'occupent (le(s) nom(s)/prénom(s), l'adresse du logement, l'antenne qui s'en occupe -je travaille au siège-, la date d'entrée, éventuellement celle de sortie, le montant du loyer, des charges, et toutes les éventualités comme les régules de charges, les facturations de travaux suite aux dégradations, etc etc).
    Chaque ligne dans la feuille correspond à une personne dans un logement.

    Ensuite, en appuyant sur un bouton, Excel me crée pour chaque ligne affichée (en tenant compte donc des filtres), un onglet qui reprend la trame du modèle et en la complétant avec les données des personnes concernées.

    Lorsque j'ai commencé à créer ce fichier, il était relativement rapide à la création des avis d'échéance (instantané en fait). Puis en le modifiant petit à petit, il a nettement perdu de sa rapidité ^^. Il faut dorénavant entre 2 et 5 secondes pour créer chaque feuille.

    Voici le code que j'utilise pour la création des avis d'échéance :

    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
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    Public Sub CreerFeuilles()
     
        Dim c As Object
        Dim CELLULE As Object
     
        'Efface "User :" dans les commentaires
        For Each c In ActiveSheet.Comments
            c.Text Text:=Replace(c.Text, Application.UserName & ":" & Chr(10), "")
        Next c
     
        'Copie les commentaires dans des cellules
        For Each c In Range("AK2:CE10000", [X65000].End(xlUp))
            If Not c.Comment Is Nothing Then
                c.Offset(0, 132) = c.Comment.Text
            End If
        Next c
     
        'Sub Créer Feuilles
        Dim oShModele As Worksheet
        Dim oShSortie As Worksheet
        Dim oShListe As Worksheet
        Dim oShMenus As Worksheet
        Dim iLigFin As Integer
        Dim iLig As Integer
        Dim oShNew As Worksheet
        Dim sNomOnglet As String
     
        Set oShModele = Worksheets("MODELE")
        Set oShSortie = Worksheets("SORTIE")
        Set oShListe = Worksheets("LISTE")
        Set oShMenus = Worksheets("MENUS")
     
        iLigFin = oShListe.Range("E" & Rows.Count).End(xlUp).Row
     
        For iLig = 2 To iLigFin
     
        If oShListe.Range("E" & iLig).Rows.Hidden = False Then
     
            If oShListe.Range("E" & iLig).Value <> "" Then
                sNomOnglet = oShListe.Range("B" & iLig).Value & "-" & oShListe.Range("NA" & iLig).Value
                If OngletExist(sNomOnglet) Then
                    Set oShNew = Worksheets(sNomOnglet)
                Else
                    If oShListe.Range("DK" & iLig).Value = 1 Then
                        oShSortie.Copy After:=Worksheets(Worksheets.Count)
                        Worksheets(Worksheets.Count).Name = sNomOnglet
                        Set oShNew = Worksheets(Worksheets.Count)
     
                        oShNew.Range("L5").Value = oShListe.Range("N" & iLig).Value 'Date de sortie
     
                    Else
                        oShModele.Copy After:=Worksheets(Worksheets.Count)
                        Worksheets(Worksheets.Count).Name = sNomOnglet
                        Set oShNew = Worksheets(Worksheets.Count)  
     
                    End If
     
                End If
     
                oShNew.Range("K1").Value = oShListe.Range("C" & iLig).Value 'Dispositif
                oShNew.Range("J15").Value = oShListe.Range("D" & iLig).Value 'Antenne
                oShNew.Range("K8").Value = oShListe.Range("E" & iLig).Value 'Nom
                If oShListe.Range("F" & iLig).Value <> "" Then
                    oShNew.Range("K9").Value = oShListe.Range("F" & iLig).Value 'Nom 2
                End If
                If oShListe.Range("G" & iLig).Value <> "" Then
                    oShNew.Range("I11").Value = oShListe.Range("G" & iLig).Value 'Adresse
                End If
                    oShNew.Range("I12").Value = oShListe.Range("H" & iLig).Value 'Adresse 2
                oShNew.Range("I13").Value = oShListe.Range("I" & iLig).Value 'Adresse 3
                If oShListe.Range("J" & iLig).Value <> "" Then
                    oShNew.Range("L3").Value = oShListe.Range("J" & iLig).Value 'Réf. CAF
                End If
                oShNew.Range("L4").Value = oShListe.Range("K" & iLig).Value 'Date d'entrée
                If oShListe.Range("N" & iLig).Value <> "" Then
                    oShNew.Range("I5").Value = "Sortie réelle :"
                oShNew.Range("L5").Value = oShListe.Range("N" & iLig).Value 'Date de sortie
                End If
                oShNew.Range("L15").Value = oShListe.Range("M" & iLig).Value 'Date de facture
                If oShListe.Range("O" & iLig).Value <> "" Then
                    oShNew.Range("A19").Value = oShListe.Range("O" & iLig).Value 'Message 1
                End If
                If oShListe.Range("P" & iLig).Value <> "" Then
                    oShNew.Range("A20").Value = oShListe.Range("P" & iLig).Value 'Message 2
                End If
                If oShListe.Range("Q" & iLig).Value <> "" Then
                    oShNew.Range("A21").Value = oShListe.Range("Q" & iLig).Value 'Message 3
                End If
                If oShListe.Range("BS" & iLig).Value <> "" Then
                    oShNew.Range("E27").Value = oShListe.Range("BS" & iLig).Value 'Solde au 31/12
                End If
                oShNew.Range("K23").Value = oShListe.Range("DM" & iLig).Value 'Mois
     
                'Mois en cours
                oShNew.Range("L30").Value = oShListe.Range("ES" & iLig).Value 'Loyer
                If oShListe.Range("IH" & iLig).Value <> "" Then
                    oShNew.Range("L32").Value = oShListe.Range("IH" & iLig).Value 'Valeur 2
                oShNew.Range("H32").Value = oShListe.Range("II" & iLig).Value 'Intitulé 2
                End If
                If oShListe.Range("IJ" & iLig).Value <> "" Then
                    oShNew.Range("L34").Value = oShListe.Range("IJ" & iLig).Value 'Valeur 3
                    oShNew.Range("H34").Value = oShListe.Range("IK" & iLig).Value 'Intitulé 3
                End If
                If oShListe.Range("IL" & iLig).Value <> "" Then
                    oShNew.Range("L36").Value = oShListe.Range("IL" & iLig).Value 'Valeur 4
                    oShNew.Range("H36").Value = oShListe.Range("IM" & iLig).Value 'Intitulé 4
                End If
                If oShListe.Range("IN" & iLig).Value <> "" Then
                    oShNew.Range("L38").Value = oShListe.Range("IN" & iLig).Value 'Valeur 5
                    oShNew.Range("H38").Value = oShListe.Range("IO" & iLig).Value 'Intitulé 5
                End If
                If oShListe.Range("IP" & iLig).Value <> "" Then
                    oShNew.Range("L40").Value = oShListe.Range("IP" & iLig).Value 'Valeur 6
                    oShNew.Range("H40").Value = oShListe.Range("IQ" & iLig).Value 'Intitulé 6
                End If
                If oShListe.Range("IR" & iLig).Value <> "" Then
                    oShNew.Range("L42").Value = oShListe.Range("IR" & iLig).Value 'Valeur 7
                    oShNew.Range("H42").Value = oShListe.Range("ID" & iLig).Value 'Intitulé 7
                End If
                If oShListe.Range("IT" & iLig).Value <> "" Then
                    oShNew.Range("L44").Value = oShListe.Range("IT" & iLig).Value 'Valeur 8
                    oShNew.Range("H44").Value = oShListe.Range("IU" & iLig).Value 'Intitulé 8
                End If
     
                'Récapitulatif des loyers
                If oShListe.Range("FB" & iLig).Value <> 0 Then
                    oShNew.Range("E28").Value = oShListe.Range("FB" & iLig).Value '1
                End If
                If oShListe.Range("FC" & iLig).Value <> 0 Then
                    oShNew.Range("E34").Value = oShListe.Range("FC" & iLig).Value '2
                End If
                If oShListe.Range("FD" & iLig).Value <> 0 Then
                    oShNew.Range("E38").Value = oShListe.Range("FD" & iLig).Value '3
                End If
                If oShListe.Range("FE" & iLig).Value <> 0 Then
                    oShNew.Range("E42").Value = oShListe.Range("FE" & iLig).Value '4
                End If
                If oShListe.Range("FF" & iLig).Value <> 0 Then
                    oShNew.Range("E46").Value = oShListe.Range("FF" & iLig).Value '5
                End If
                If oShListe.Range("FG" & iLig).Value <> 0 Then
                    oShNew.Range("E50").Value = oShListe.Range("FG" & iLig).Value '6
                End If
                If oShListe.Range("FH" & iLig).Value <> 0 Then
                    oShNew.Range("E54").Value = oShListe.Range("FH" & iLig).Value '7
                End If
                If oShListe.Range("FI" & iLig).Value <> 0 Then
                    oShNew.Range("E58").Value = oShListe.Range("FI" & iLig).Value '8
                End If
                If oShListe.Range("FJ" & iLig).Value <> 0 Then
                    oShNew.Range("E62").Value = oShListe.Range("FJ" & iLig).Value '9
                End If
                If oShListe.Range("FK" & iLig).Value <> 0 Then
                    oShNew.Range("E66").Value = oShListe.Range("FK" & iLig).Value '10
                End If
                If oShListe.Range("FL" & iLig).Value <> 0 Then
                    oShNew.Range("E70").Value = oShListe.Range("FL" & iLig).Value '11
                End If
     
                'Récapitulatif des versements
                If oShListe.Range("FW" & iLig).Value <> 0 Then
                    oShNew.Range("E32").Value = oShListe.Range("FW" & iLig).Value '1
                End If
                If oShListe.Range("FX" & iLig).Value <> 0 Then
                    oShNew.Range("E36").Value = oShListe.Range("FX" & iLig).Value '2
                End If
                If oShListe.Range("FY" & iLig).Value <> 0 Then
                    oShNew.Range("E40").Value = oShListe.Range("FY" & iLig).Value '3
                End If
                If oShListe.Range("FZ" & iLig).Value <> 0 Then
                    oShNew.Range("E44").Value = oShListe.Range("FZ" & iLig).Value '4
                End If
                If oShListe.Range("GA" & iLig).Value <> 0 Then
                    oShNew.Range("E48").Value = oShListe.Range("GA" & iLig).Value '5
                End If
                If oShListe.Range("GB" & iLig).Value <> 0 Then
                    oShNew.Range("E52").Value = oShListe.Range("GB" & iLig).Value '6
                End If
                If oShListe.Range("GC" & iLig).Value <> 0 Then
                    oShNew.Range("E56").Value = oShListe.Range("GC" & iLig).Value '7
                End If
                If oShListe.Range("GD" & iLig).Value <> 0 Then
                    oShNew.Range("E60").Value = oShListe.Range("GD" & iLig).Value '8
                End If
                If oShListe.Range("GE" & iLig).Value <> 0 Then
                    oShNew.Range("E64").Value = oShListe.Range("GE" & iLig).Value '9
                End If
                If oShListe.Range("GF" & iLig).Value <> 0 Then
                    oShNew.Range("E68").Value = oShListe.Range("GF" & iLig).Value '10
                End If
                If oShListe.Range("GG" & iLig).Value <> 0 Then
                    oShNew.Range("E72").Value = oShListe.Range("GG" & iLig).Value '11
                End If
     
                'Récapitulatif des versements CAF
                If oShListe.Range("GJ" & iLig).Value <> 0 Then
                    oShNew.Range("E31").Value = oShListe.Range("GJ" & iLig).Value '1
                End If
                If oShListe.Range("GK" & iLig).Value <> 0 Then
                    oShNew.Range("E35").Value = oShListe.Range("GK" & iLig).Value '2
                End If
                If oShListe.Range("GL" & iLig).Value <> 0 Then
                    oShNew.Range("E39").Value = oShListe.Range("GL" & iLig).Value '3
                End If
                If oShListe.Range("GM" & iLig).Value <> 0 Then
                    oShNew.Range("E43").Value = oShListe.Range("GM" & iLig).Value '4
                End If
                If oShListe.Range("GN" & iLig).Value <> 0 Then
                    oShNew.Range("E47").Value = oShListe.Range("GN" & iLig).Value '5
                End If
                If oShListe.Range("GO" & iLig).Value <> 0 Then
                    oShNew.Range("E51").Value = oShListe.Range("GO" & iLig).Value '6
                End If
                If oShListe.Range("GP" & iLig).Value <> 0 Then
                    oShNew.Range("E55").Value = oShListe.Range("GP" & iLig).Value '7
                End If
                If oShListe.Range("GQ" & iLig).Value <> 0 Then
                    oShNew.Range("E59").Value = oShListe.Range("GQ" & iLig).Value '8
                End If
                If oShListe.Range("GR" & iLig).Value <> 0 Then
                    oShNew.Range("E63").Value = oShListe.Range("GR" & iLig).Value '9
                End If
                If oShListe.Range("GS" & iLig).Value <> 0 Then
                    oShNew.Range("E67").Value = oShListe.Range("GS" & iLig).Value '10
                End If
                If oShListe.Range("GT" & iLig).Value <> 0 Then
                    oShNew.Range("E71").Value = oShListe.Range("GT" & iLig).Value '11
                End If
     
                'Récapitulatif - Date des versements
                If oShListe.Range("HJ" & iLig).Value <> "" Then
                    oShNew.Range("F32").Value = oShListe.Range("HJ" & iLig).Value '1
                End If
                If oShListe.Range("HK" & iLig).Value <> "" Then
                    oShNew.Range("F36").Value = oShListe.Range("HK" & iLig).Value '2
                End If
                If oShListe.Range("HL" & iLig).Value <> "" Then
                    oShNew.Range("F40").Value = oShListe.Range("HL" & iLig).Value '3
                End If
                If oShListe.Range("HM" & iLig).Value <> "" Then
                    oShNew.Range("F44").Value = oShListe.Range("HM" & iLig).Value '4
                End If
                If oShListe.Range("HN" & iLig).Value <> "" Then
                    oShNew.Range("F48").Value = oShListe.Range("HN" & iLig).Value '5
                End If
                If oShListe.Range("HO" & iLig).Value <> "" Then
                    oShNew.Range("F52").Value = oShListe.Range("HO" & iLig).Value '6
                End If
                If oShListe.Range("HP" & iLig).Value <> "" Then
                    oShNew.Range("F56").Value = oShListe.Range("HP" & iLig).Value '7
                End If
                If oShListe.Range("HQ" & iLig).Value <> "" Then
                    oShNew.Range("F60").Value = oShListe.Range("HQ" & iLig).Value '8
                End If
                If oShListe.Range("HR" & iLig).Value <> "" Then
                    oShNew.Range("F64").Value = oShListe.Range("HR" & iLig).Value '9
                End If
                If oShListe.Range("HS" & iLig).Value <> "" Then
                    oShNew.Range("F68").Value = oShListe.Range("HS" & iLig).Value '10
                End If
                If oShListe.Range("HT" & iLig).Value <> "" Then
                    oShNew.Range("F72").Value = oShListe.Range("HT" & iLig).Value '11
                End If
     
                'Récapitulatif des régules
                If oShListe.Range("IW" & iLig).Value <> 0 Then
                    oShNew.Range("E33").Value = oShListe.Range("IW" & iLig).Value '1
                End If
                If oShListe.Range("IX" & iLig).Value <> 0 Then
                    oShNew.Range("E37").Value = oShListe.Range("IX" & iLig).Value '2
                End If
                If oShListe.Range("IY" & iLig).Value <> 0 Then
                    oShNew.Range("E41").Value = oShListe.Range("IY" & iLig).Value '3
                End If
                If oShListe.Range("IZ" & iLig).Value <> 0 Then
                    oShNew.Range("E45").Value = oShListe.Range("IZ" & iLig).Value '4
                End If
                If oShListe.Range("JA" & iLig).Value <> 0 Then
                    oShNew.Range("E49").Value = oShListe.Range("JA" & iLig).Value '5
                End If
                If oShListe.Range("JB" & iLig).Value <> 0 Then
                    oShNew.Range("E53").Value = oShListe.Range("JB" & iLig).Value '6
                End If
                If oShListe.Range("JC" & iLig).Value <> 0 Then
                    oShNew.Range("E57").Value = oShListe.Range("JC" & iLig).Value '7
                End If
                If oShListe.Range("JD" & iLig).Value <> 0 Then
                    oShNew.Range("E61").Value = oShListe.Range("JD" & iLig).Value '8
                End If
                If oShListe.Range("JE" & iLig).Value <> 0 Then
                    oShNew.Range("E65").Value = oShListe.Range("JE" & iLig).Value '9
                End If
                If oShListe.Range("JF" & iLig).Value <> 0 Then
                    oShNew.Range("E69").Value = oShListe.Range("JF" & iLig).Value '8
                End If
                If oShListe.Range("JG" & iLig).Value <> 0 Then
                    oShNew.Range("E73").Value = oShListe.Range("JG" & iLig).Value '8
                End If
     
                If oShListe.Range("MX" & iLig).Value <> 0 Then
                    oShNew.Range("E29").Value = oShListe.Range("MX" & iLig).Value 'Récap Caution
                End If
                If oShListe.Range("MY" & iLig).Value <> 0 Then
                    oShNew.Range("E30").Value = oShListe.Range("MY" & iLig).Value 'Récap FSL
                End If
     
     
                'lien hypertext
                oShNew.Hyperlinks.Add Anchor:=oShListe.Range("E" & iLig), Address:="", SubAddress:= _
                        "'" & sNomOnglet & "'!A1", TextToDisplay:=oShListe.Range("E" & iLig).Value
                Set oShNew = Nothing
            End If
     
        End If
     
        Next iLig
     
        oShListe.Select
     
        Set oShListe = Nothing
        Set oShModele = Nothing
        Set oShSortie = Nothing
        Set oShMenus = Nothing
     
    End Sub
    Je précise qu'il y a sans doute un paquet de choses "bizarres", je ne fais que du bidouillage à partir de ce que je trouve sur Internet. A vrai dire, j'ai même découvert l'existence du VBA en créant ce fichier.

    Il y aurait-il, justement dans mes bidouillages, un moyen pour que l'éxecution du code soit plus rapide ? Par exemple des raccourcis à ce que j'ai pu écrire ? Ou est-ce qu'il y a des commandes que j'ai utilisé qui pourraient être la cause du ralentissement ?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je n'ai pas regardé le code, mais tu peux déjà mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.screenupdating = false
    en début de code et le remetre à True en fin de code.

    Eventuellement, désactive le calcul manuel en début et réactive-le en fin de macro.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Homme Profil pro
    Administratif
    Inscrit en
    Mars 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administratif

    Informations forums :
    Inscription : Mars 2018
    Messages : 10
    Par défaut
    Merci, c'est effectivement mieux.

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

Discussions similaires

  1. Réponses: 49
    Dernier message: 02/12/2016, 16h55
  2. [WD17] Vitesse d'exécution d'un code
    Par Nathalie35000 dans le forum WinDev
    Réponses: 10
    Dernier message: 06/11/2013, 16h58
  3. Réponses: 8
    Dernier message: 01/01/2008, 20h38
  4. Vitesse d'exécution d'un code en C.
    Par criga dans le forum C
    Réponses: 8
    Dernier message: 11/12/2007, 05h17

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