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

IHM Discussion :

Bug sur code VBA [AC-2013]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Bug sur code VBA
    Bonjour,

    Il y a quelques semaines, j'ai demandé votre aide pour mettre en place un code VBA.

    Le principe était le suivant : pour calculer la puissance nécessaire des appareils de chauffage à installer, il faut, entre autre, connaître la TEBC (T° extérieure de base corrigée).

    Pour ce faire, il existe une base de T° appelée TEB (T° extérieure de base) qu’on sélectionne avec un tableau appelé « STATION ».

    Dans la BD il y a une table « STATION » dans laquelle se trouvent les informations nécessaires. Par exemple, si on prend AMBERIEU :
    - La station est à 252m d’altitude
    - La TEB est de -10°C

    Il y a une seconde table appelée « TEBC » qui corrige la T° extérieure suivant l’altitude réelle du terrain où se trouve la construction.

    Dans la table « DEVIS » il y a donc les informations sur la STATION (ALTSTATION, 3KM et 25KM) et l’altitude réelle du terrain (ALTTERRAIN).

    Lorsque je choisis la STATION lors de la saisie du Devis, le calcul de la TEBC doit se faire.

    Si 3km est coché c’est cette altitude qui est prise en compte, idem pour 25km. Pour le reste on choisit la station, qui a une certaine altitude et le TEBC se corrige si l’altitude réelle du terrain est différente de celle de la station.

    Avec votre aide, le code suivant a été mis en place sur l'évènement APRES MAJ du champs "ALTTERRAIN" :

    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
    Private Sub ALTTERRAIN_AfterUpdate()
    Dim Db As Database
        Dim rTebc As Recordset
        Dim TEB As Double
        Dim TEBCDEVIS As Double
     
        Set Db = CurrentDb
        Set rTebc = Db.OpenRecordset("SELECT * FROM [R TEBC] WHERE [CODSTATION] =""" & Me.CHAMPSTATION.Value & """;", dbOpenSnapshot)
     
     
        If Me.Controls("3MER").Value Then
           TEB = rTebc.Fields("TEB3KM").Value
           Me.TEBCDEVIS = TEB3KM
        ElseIf Me.Controls("25MER").Value Then
           TEB = rTebc.Fields("TEB25KM").Value
           Me.TEBCDEVIS = TEB25KM
        ElseIf Not Me.Controls("3MER").Value Then
           TEB = rTebc.Fields("TEB").Value
        End If
     
        rTebc.FindFirst Me.ALTTERRAIN & ">=[ALT1] And " & Me.ALTTERRAIN & "<=[ALT2]"
        If Not rTebc.NoMatch Then
           Me.TEBCDEVIS.Value = rTebc.Fields("TEBC").Value
        End If
     
        rTebc.Close
        Set rTebc = Nothing
        Db.Close
        Set Db = Nothing
    End Sub
    Le problème est que pour que le code fonctionne je dois systématiquement remplir le champs "ALTTERRAIN" sinon ça bug et la ligne

    rTebc.FindFirst Me.ALTTERRAIN & ">=[ALT1] And " & Me.ALTTERRAIN & "<=[ALT2]"

    est jaune, or j'aurais souhaité que le champs soit renseigné automatiquement.
    Je m'explique : en choisissant une station celle-ci à une altitude (ALTSTATION), donc j'aimerais que le champs ALTTERRAIN prenne cette information par défaut pour réaliser le calcul. Mais si je saisis dans le champs ALTTERRAIN une altitude différente que le calcul se fasse après MAJ.

    J'ai essayé d'ajouter dans le code 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub ALTTERRAIN_AfterUpdate()
    Dim Db As Database
        Dim rTebc As Recordset
        Dim TEB As Double
        Dim TEBCDEVIS As Double
     
        Set Db = CurrentDb
        Set rTebc = Db.OpenRecordset("SELECT * FROM [R TEBC] WHERE [CODSTATION] =""" & Me.CHAMPSTATION.Value & """;", dbOpenSnapshot)
     
        If Me.ALTTERRAIN Is Nul Then
        Me.ALTTERRAIN = [STATION]![ALTSTATION]
        End If
     
        If Me.Controls("3MER").Value Then
           TEB = rTebc.Fields("TEB3KM").Value
           Me.TEBCDEVIS = TEB3KM
        ElseIf Me.Controls("25MER").Value Then
           TEB = rTebc.Fields("TEB25KM").Value
           Me.TEBCDEVIS = TEB25KM
        ElseIf Not Me.Controls("3MER").Value Then
           TEB = rTebc.Fields("TEB").Value
        End If
     
        rTebc.FindFirst Me.ALTTERRAIN & ">=[ALT1] And " & Me.ALTTERRAIN & "<=[ALT2]"
        If Not rTebc.NoMatch Then
           Me.TEBCDEVIS.Value = rTebc.Fields("TEBC").Value
        End If
     
        rTebc.Close
        Set rTebc = Nothing
        Db.Close
        Set Db = Nothing
    End Sub
    ...mais ça ne fonctionne pas

    Je joints la BD pour plus de compréhension (le caclcul se fait dans le formulaire devis)
    Pièce jointe 434172

    Dans l'attente de vos conseils

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonjour,
    on ne peut pas parler de bug mais plutôt d'une mauvaise utilisation du VBA
    essaie comme cela :
    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
    Private Sub ALTTERRAIN_AfterUpdate()
        Dim Db As Database
        Dim rTebc As Recordset
        Dim TEB As Double
        Dim TEBCDEVIS As Double
     
        Set Db = CurrentDb
        Set rTebc = Db.OpenRecordset("SELECT * FROM [R TEBC] WHERE [CODSTATION] =""" & Me.CHAMPSTATION.Value & """ AND " & _
        Me.ALTTERRAIN & " BETWEEN [ALT1] AND [ALT2];", dbOpenSnapshot)
     
        If rTebc.RecordCount <> 0 Then
     
            If Me.Controls("3MER").Value Then
               TEB = rTebc.Fields("TEB3KM").Value
               Me.TEBCDEVIS = TEB3KM
            ElseIf Me.Controls("25MER").Value Then
               TEB = rTebc.Fields("TEB25KM").Value
               Me.TEBCDEVIS = TEB25KM
            ElseIf Not Me.Controls("3MER").Value Then
               TEB = rTebc.Fields("TEB").Value
            End If
     
            Me.TEBCDEVIS.Value = rTebc.Fields("TEBC").Value
     
        End If
        rTebc.Close
        Set rTebc = Nothing
        Db.Close
        Set Db = Nothing
    End Sub
    pour info, je te signale à nouveau que ton code ne compile toujours pas, il y a du code fantôme qui empêche la compilation, ce message n'est qu'une erreur parmi plein d'autres:

    Nom : erreur_compilation.JPG
Affichages : 186
Taille : 101,8 Ko

    pour compiler le code: Débogage / Compiler DEVISPAC
    pour ce genre d'erreur lors de la compilation, si le code
    est dans un formulaire et que tu vois (Général) dans la liste d'objets c'est qu'il n'est lié à aucun contrôle du formulaire, tu peux donc le supprimer.

    PS: je ne comprend pas trop ce que tu fais (ou veux faire) avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            If Me.Controls("3MER").Value Then
               TEB = rTebc.Fields("TEB3KM").Value
               Me.TEBCDEVIS = TEB3KM
            ElseIf Me.Controls("25MER").Value Then
               TEB = rTebc.Fields("TEB25KM").Value
               Me.TEBCDEVIS = TEB25KM
            ElseIf Not Me.Controls("3MER").Value Then
               TEB = rTebc.Fields("TEB").Value
            End If

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour tee_grandbois,

    Concernant ta proposition de code, il y a un souci de mise à jour. En effet si tu ouvres un devis et que tu modifie la station, le TEBC ne se met pas à jour et donc la déperdition et la puissance non plus.

    Par exemple, si tu ouvres le devis N°5, la station est sur "Colmar", si je la changes par "Saint Claude Etables" puis ACTUALISER, le TEBC reste à -15 eu lieu d'être à -12 et donc le calcul déperdition/puissance ne se modifie pas.

    De plus si tu ouvres le devis N°2, où il y a une altitude de renseignée "230", que tu l'effaces et que tu cliques sur ACTUALISER, un message d'erreur apparaît.

    Concernant le code "3Mer" et "25Mer", j'ai oublié de l'enlever car je ne m'en sert pas... nous sommes trop loin de la mer, hélas...

    Enfin, merci pour l'info de suppression des erreurs de compilation.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    Concernant ta proposition de code, il y a un souci de mise à jour. En effet si tu ouvres un devis et que tu modifie la station, le TEBC ne se met pas à jour et donc la déperdition et la puissance non plus.
    ce n'est pas de mon fait et cela n'a rien à voir avec le problème d'origine, j'ai seulement corrigé le soi-disant bug avec l'instruction FindFirst qui était dû à une utilisation incorrecte.
    Ma modification se résume à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Set rTebc = Db.OpenRecordset("SELECT * FROM [R TEBC] WHERE [CODSTATION] =""" & Me.CHAMPSTATION.Value & """ AND " & _
        Me.ALTTERRAIN & " BETWEEN [ALT1] AND [ALT2];", dbOpenSnapshot)
     
        If rTebc.RecordCount <> 0 Then
    Le reste du code t'appartient.
    Par exemple, si tu ouvres le devis N°5, la station est sur "Colmar", si je la changes par "Saint Claude Etables" puis ACTUALISER, le TEBC reste à -15 eu lieu d'être à -12 et donc le calcul déperdition/puissance ne se modifie pas.

    De plus si tu ouvres le devis N°2, où il y a une altitude de renseignée "230", que tu l'effaces et que tu cliques sur ACTUALISER, un message d'erreur apparaît.
    idem; problème qui n'a rien à voir avec l'erreur sur FindFirst ... et que dit le message d'erreur ?

  5. #5
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Quand on double-clique sur la textbox NomC du formListeDevis on ouvre formDEVIS
    Et dans ce form formDEVIS il n'y a pas d'objet ALTTERRAIN
    Cet objet ALTTERRAIN est dans le form F DEVIS
    C'est pour cela que votre TEBC ne se met pas à jour
    Où alors un truc m'échappe

    #Post2
    Salut tee_grandbois
    Erreurs de compile, normal puisque les variables appartiennent à formListeDEVIS et non pas à formListeACCESGENERATEUR

    Que sont des altitudes 3km et 25km. Une station à 3000m d'altitude on en trouvera en France, mais à 25000m, euh ...

    EDIT : les doublons d'accessoires, normal dans la clause vers il manque la relation avec NUMDEVIS
    D'ailleurs le problème se poserait également pour Commande132 et Commande176 pour la clause WHERE

    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
    Private Sub Commande144_Click()
    ' Déclaration des variables
        Dim l_strSql As String
     
        With DoCmd
            ' Initialisation de la requete d'Ajout dans la table T_DétailDevis
            l_strSql = "INSERT INTO DetailACCESGENERATEUR ( AccesGeneArticles, ACCESGENEDEVIS ) " & _
                "SELECT ArticlesACCESSGENERATEUR.IDARTIACCESGENE, RqDEVIS.NUMDEVIS " & _
                "FROM ArticlesACCESSGENERATEUR INNER JOIN RqDEVIS ON ArticlesACCESSGENERATEUR.accesTOUTEPAC = RqDEVIS.ToutePAC " & _
                "WHERE (((RqDEVIS.NUMDEVIS)=[Formulaires]![FormDEVIS]![NUMDEVIS]) AND ((ArticlesACCESSGENERATEUR.accessSELECTION)=True));"        ' Désactivation des messages systeme
            .SetWarnings False
            ' exécution de la requete mise à jour
            .RunSQL (l_strSql)
     
            ' Initialisation de la requete de mise à jour de la table T_ArticlesChauffage
            l_strSql = "UPDATE ArticlesACCESSGENERATEUR SET accessSELECTION = 0 WHERE accessSELECTION = -1"
     
            ' Exécution de la requete Mise à jour de la table ArticlesGENERATEUR
            .RunSQL (l_strSql)
            ' réactivation des messages systeme
            .SetWarnings True
        End With
     
        ' Réactualisation de l'affichage du sous formulaire
        Me.SFDetailACCESGENERATEUR.Requery
    End Sub

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Voici le message quand on efface l'altitude :

    Nom : 1.jpg
Affichages : 159
Taille : 30,1 Ko

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    Citation Envoyé par hyperion13
    Salut tee_grandbois
    Erreurs de compile, normal puisque les variables appartiennent à formListeDEVIS et non pas à formListeACCESGENERATEUR
    salut hyperion13,
    je suis d'accord mais c'est tellement le foullis dans cette base qu'il est difficile de s'y retrouver, alors autant supprimer ce qui pose problème quitte à récrire après le code qui va bien là où ça va bien.

    Citation Envoyé par hyperion13
    Quand on double-clique sur la textbox NomC du formListeDevis on ouvre formDEVIS
    Et dans ce form formDEVIS il n'y a pas d'objet ALTTERRAIN
    Cet objet ALTTERRAIN est dans le form F DEVIS
    C'est pour cela que votre TEBC ne se met pas à jour
    Où alors un truc m'échappe
    F Devis est un formulaire "fantôme" (encore un), il n'est pas appelé depuis le menu. ALTTERRAIN existe bien dans FormDEVIS:

    Nom : _formDEVIS.JPG
Affichages : 136
Taille : 74,6 Ko

    donc, le code que j'ai donné pour ALTTERRAIN _AfterUpdate() est correct, il ne faut donc pas enlever l'altitude dans l'instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set rTebc = Db.OpenRecordset("SELECT * FROM [R TEBC] WHERE [CODSTATION] =""" & Me.CHAMPSTATION.Value & """ AND " & _
        Me.ALTTERRAIN & " BETWEEN [ALT1] AND [ALT2];", dbOpenSnapshot)
    Pour le reste, j'aimerais que maringot nous donne des exemples concrets (illustrés) de ce qui ne va pas, cela éviterai d'essayer de rechercher dans tous ces objets inutiles.

    @maringot: bonjour,
    Citation Envoyé par maringot
    Par exemple, si tu ouvres le devis N°5, la station est sur "Colmar", si je la changes par "Saint Claude Etables" puis ACTUALISER,
    le TEBC reste à -15 eu lieu d'être à -12 et donc le calcul déperdition/puissance ne se modifie pas.
    le fait d'appuyer sur le bouton Actualiser ne va pas changer le TEBC tout seul, il faut le coder, d'ailleurs où se trouve cette information ? Car il n'y a aucun code sur le contrôle CHAMPSTATION et dans la table STATION il n'y a aucune valeur à -12 pour Saint Claude Etables.

    Il n'y a que sur le code ALTTERRAIN_AfterUpdate() que le TEBC change et il faut que le champ ALTTERRAIN soit renseigné sinon il ne sera pas mis à jour non plus.

    Prend le temps de nous expliquer sur quels évènements devraient se faire les mises à jour de ces champs, cela permettra d'avancer.

  8. #8
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    salut hyperion13,
    F Devis est un formulaire "fantôme" (encore un), il n'est pas appelé depuis le menu. ALTTERRAIN existe bien dans FormDEVIS
    Salut tee_grandbois
    Désolé, je bossais sur l'ancienne bdd Gest4 versus PacGest4

    Mais je me demande pourquoi calculer la TEBC puisqu'il existe des abaques sur le web. Autant ajouter l'altitude de la ville du client et aller la comparer dans l'une des tranches d'altitude (de 0 à 3000m = 3K) de l'abaque qui va bien selon la zone géographique (A à I) et distance des côtés (25K).

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    J’ai refait une base donc il ne devrait plus y avoir de fantômes.Concernant mon problème de calcul, je souhaiterais réaliser ceci :

    Dans le devis je sélectionne une station. Je saisis le « G », j’indique la T° de confort « TIB » (21°C par défaut mais je peux la changer +ou-).
    Lorsque je choisis la station, celle-ci a une altitude :

    Pièce jointe 435127

    Par exemple pour Besançon, l’altitude est de 311 m. Les champs « DJU » et « TEB » se remplissent automatiquement puisque les paramètres sont indiqués dans la liste déroulante « CHAMPSTATION ».

    Pour que le champ « TEBC » se remplisse, il faut chercher l’altitude dans la requête TEBC :

    Pièce jointe 435128

    Si l’altitude se situe entre 0 et 200m, la TEBC sera de -12°C, si elle se situe entre 201 et 400m elle sera de -13°C, etc…

    Donc ce que j’aimerais c’est que lorsque je choisis une station, le champ "TEBC" se remplisse suivant l'altitude par défaut de la station (311m pour l'exemple de Besançon).

    Le champ « DT » quant à lui se rempli en faisant le calcul suivant : [TIB]-[TEBCDEVIS]

    Lorsque l’altitude du terrain où se déroulera le chantier, se situe à une autre altitude que celle indiquée par défaut dans la liste « CHAMPSTATION », je souhaite la saisir dans le champ « ALTITUDE TERRAIN » et en cliquant sur un bouton « MAJ » que le TEBC soit modifié selon l’altitude saisie.

    Enfin, lorsque tous les paramètres sont remplis, le calcul de la « déperdition totale » et de la « puissance à installer » se font :
    Déper = G*Volume chauffé*(TIB-TEBC)
    Puissance = Déper +20%

    Pièce jointe 435132

    Si je saisis une information dans le champ « Altitude terrain », il faut que je puisse la modifier, voire la supprimer, si j’ai fait une erreur de saisie.

    J'espère que ces explications sont plus claires et que la base est plus propre.
    Pièce jointe 435143

  10. #10
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Travaillez-vous à partir de ce type de base documentaire ?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Effectivement nous utilisons ce type d'informations. Les commerciaux font des calculs pré-traitement, et donc il faut enregistré dans le devis les champs indiqués.

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

Discussions similaires

  1. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38
  2. Problématique sur Code VBA graphique
    Par karim19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/12/2009, 18h54
  3. Option sur code vba déjà créé
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/05/2008, 15h55
  4. [VBA]Conseil sur code VBA
    Par mat67000 dans le forum VBA Access
    Réponses: 15
    Dernier message: 22/03/2007, 11h23
  5. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05

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