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

VBA Access Discussion :

Comment accéder à un variable d'une autre application Access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de shishi666
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut Comment accéder à un variable d'une autre application Access
    Bonjour a toutes et tous,

    j'essaye de créer une boite à outils Access permettant d'automatiser des modification dans une autre application Access.

    Je vais essayer de résumer le contexte :

    Ma boite à outils comporte :
    • 1 formulaire Boite à outils
    • 1 second formulaire Controles sources
    • 1 module Erreurs (permettant la gestion des erreurs)
    • 1 module GestionFichier (permettant à l'utilisateur de sélectionner l'application Access a modifier)
    • 1 module BoiteAOutils (comportant les fonctions modifiant l'autre application Access)
    • Il n'y a aucune table.


    L'application à modifier comporte :
    • Des tables liées en odbc à une base de données Postgres.
    • Des formulaires
    • Des modules



    Et voici ce que je cherche à faire : l'utilisateur ouvre la boite à outils, sélectionne l'application Access à modifier (l'application s'ouvre bien et ma boite à outil affiche tous les formulaire de l'application à modifier), ensuite l'utilisateur sélectionne les formulaire qu'ils souhaitent modifier et la modification à effectuer (dans mon cas il s'agit de faire un copier/coller d'un contrôle présent dans le formulaire "Controles sources" de ma boite à outils dans les formulaires (sélectionnés par l'utilisateur) de l'application à modifier.

    Mon problème c'est que je souhaiterais depuis le module "BoiteAOutils" (de ma boite à outils) récupérer ou accéder à une variable présente dans un module de l'application à modifier.

    Auriez vous la solution pour que ma boite à outils accéder ou récupère une variable d'une autre application?

    J'espère avoir était suffisamment précis dans mes explications, n'hésitez pas si vous avez besoin d'informations complémentaires ou de code.

    Merci par avance

    Cordialement

    Shishi

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    je peux te proposer de passer par une table de paramètres :
    https://jpcheck.developpez.com/tutor...es-initiation/

    Tu auras besoin d'une table liée pour lire les informations
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour
    il y a ça dans ma contribution :
    https://www.developpez.net/forums/d1...ndancesplusv2/

    sinon, dans ton appli "boite à outils", dans un module standard:

    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
    Option Compare Database
    Option Explicit
    '### Variables ###
     
    Public DetVar
     
    Public As VariantPublic Sub SearchCodeModule3(ByVal Quoi As String, tout As Boolean, DeuxFois As Boolean)
    'Tout=True recherche dans tout le module, sinon seulement dans la partie Déclaration (pour le variables)
    'le 3° argument sert pour enchainer une fois la sub avec "Public" puis avec "Dim" ,tout en conservant les données lors du 2° passage
        Dim VBProj As VBIDE.VBProject
        Dim VBComp As VBIDE.VBComponent
        Dim CodeMod As VBIDE.CodeModule
        Dim FindWhat As String
        Dim SL As Long    ' start line
        Dim EL As Long    ' end line
        Dim SC As Long    ' start column
        Dim EC As Long    ' end column
        Dim Found As Boolean
        Dim i As Integer, h As Long
     
        i = 1
     
    '    NomProjet = VBE.VBProjects.Item(i).Name
     
        If DeuxFois Then
            '    ReDim Preserve DetVarPublic(1 To 4, 1 To 1) As String
        Else
            ReDim DetVarPublic(1 To 4, 1 To 1) As String
     
     
            DetVarPublic(1, 1) = "Module"
            DetVarPublic(2, 1) = "type de variable"
     
            DetVarPublic(3, 1) = "déclaration"
            DetVarPublic(4, 1) = "ligne"
        End If
     
     
        Set VBProj = VBE.VBProjects.Item(NomProjet)
     
        For Each VBComp In VBProj.VBComponents
     
            If VBComp.Type <> 2 _
               And VBComp.Name <> "modLibTgl" And VBComp.Name <> IIf(ExistForm("DépendancesPlus2"), "DépendancesPlus2", "a") Then
     
                Set CodeMod = VBComp.CodeModule
     
                FindWhat = Quoi
     
                With CodeMod
                    SL = 1
                    If tout Then
                        EL = .CountOfLines
                    Else
                        EL = .CountOfDeclarationLines    'cherche seulement dans la partie Déclaration du module
                    End If
                    SC = 1
                    EC = 255
                    Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                                  EndLine:=EL, EndColumn:=EC, _
                                  wholeword:=True, MatchCase:=False, patternsearch:=False)
     
                    Do Until Found = False
                        If Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), 1) <> "'" Then      'pour eviter les lignes commentées
                            '                        Debug.Print "Found at: Line: " & CStr(SL) & " Column: " & CStr(SC) & " dans le module " & VBComp.Name & " ligne " & VBComp.CodeModule.Lines(SL, 1)
     
                            ReDim Preserve DetVarPublic(1 To 4, 1 To UBound(DetVarPublic, 2) + 1)
     
                            DetVarPublic(1, UBound(DetVarPublic, 2)) = VBComp.Name
     
                            Select Case Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), 3)
                            Case "Dim"
                                DetVarPublic(2, UBound(DetVarPublic, 2)) = "Variables niveau module"
                            Case "Global"
                                DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
                            Case Else
     
     
                                '                        If Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), 3) = "Dim" Then
                                '                            DetVarPublic(2, UBound(DetVarPublic, 2)) = "Variables niveau module"
                                '                        Else
     
                                If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 5) = "Const" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "Constantes"
                                If InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), "Declare Function") > 0 Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "API"
                                If InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), "Declare Sub") > 0 Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "API"
     
                                If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 4) = "Enum" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "Enumération"
     
                                Select Case Quoi
     
                                Case "Public"
                                    'commence à 8 pour Public
                                    If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 8) <> "Function" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 5) <> "Const" _
                                       And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 7) <> "Declare" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 4) <> "Enum" Then
                                        DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
                                    End If
     
                                Case "Private"
                                    'commence à 9 pour Public
                                    If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 8) <> "Function" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 5) <> "Const" _
                                       And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 7) <> "Declare" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 4) <> "Enum" Then
                                        DetVarPublic(2, UBound(DetVarPublic, 2)) = "Variables niveau module"
                                    End If
     
                                Case "Global"
                                    DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
     
                                End Select
     
                            End Select
     
     
                            If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 1, 20) = "Application.TempVars" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "TempVars"
                            h = IIf(InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), Chr(39), 1) > 0, InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), Chr(39), 1), Len(LTrim(VBComp.CodeModule.Lines(SL, 1))))    '29/08/17
     
                            DetVarPublic(3, UBound(DetVarPublic, 2)) = Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), h)
     
                            DetVarPublic(4, UBound(DetVarPublic, 2)) = SL
                        End If
     
                        If tout Then
                            EL = .CountOfLines
                        Else
                            EL = .CountOfDeclarationLines
                        End If
                        SC = EC + 1
                        EC = 255
     
                        Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                                      EndLine:=EL, EndColumn:=EC, _
                                      wholeword:=True, MatchCase:=False, patternsearch:=False)
     
                    Loop
     
                End With
            End If
            i = i + 1
        Next VBComp
     
    End Sub
    et tu appelles la sub ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           SearchCodeModule3 "Public", False, False
            SearchCodeModule3 "Global", False, True
            SearchCodeModule3 "Dim", False, True
            SearchCodeModule3 "Private", False, True
            SearchCodeModule3 "Application.TempVars.Add", True, True
    Les résultats seront dans le tableau "DetVarPublic"
    y'a plus qu'a ….

    cdlt

  4. #4
    Membre averti Avatar de shishi666
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    Bonjour,

    merci beaucoup pour vos réponses Jean Philippe André et Thierry Pallier,

    n'ayant actuellement pas la disponibilité de tester vos solutions, je reviens vers vous dès que ce sera fait.

    Bonne journée

    Shishi

  5. #5
    Membre averti Avatar de shishi666
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    Bonjour,

    Tout d'abord Thierry j'ai copié/collé ta procédure dans un module de ma boite à outils, puis j'ai essayé de l'appeler mais j'ai obtenu une erreur sur la ligne de déclaration de la procédure.

    Ensuite Jean-Philippe André je ne suis pas certain que ta solution corresponde à mes besoins (je me suis surement mal exprimé). En faite Dans l'application Access choisit par l'utilisateur (celle qu'il souhaite modifier), a l'ouverture d'un formulaire de cette application une variable de type "Control_lié" (un type que j'ai créé) se charge. Et j'aimerais accéder à cette variable depuis ma boite à outils. Et si j'ai mal compris ta solution Jean-Philippe et qu'elle correspond ça m'ennui un peu de devoir modifier toutes les applications avant d'utiliser ma boite à outils dessus.

    J'espère avoir été plus clair si ce n'était pas le cas précédemment, auriez vous une piste si possible sans modification des application sur lesquelles je souhaite utiliser la "boite à outils"

    Merci par avance

    Shishi

  6. #6
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour shishi666.

    Ce n'est pas toujours simple d'extraire une partie du code d'une application un peu complexe.

    Le code qui suit fonctionne bien ,si ton outil est référencé dans l'appli à verifier.
    Apparement ce n'est peut etre pas ce que tu désires. Dans ce cas, place un point d'arret (ligne 24)et regarde ce qu'il y a dans VBE.VBProjects.Item


    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
    Option Compare Database
    Option Explicit
    '### Variables ###
     
    Public DetVar 'ne sert pas
    Public DetVarPublic As Variant
    Public NomProjet As Variant
     
    Public Sub SearchCodeModule3(ByVal Quoi As String, tout As Boolean, DeuxFois As Boolean)
    'Tout=True recherche dans tout le module, sinon seulement dans la partie Déclaration (pour les variables)
    'le 3° argument sert pour enchainer une fois la sub avec "Public" puis avec "Dim" ,tout en conservant les données lors du 2° passage
        Dim VBProj As VBIDE.VBProject
        Dim VBComp As VBIDE.VBComponent
        Dim CodeMod As VBIDE.CodeModule
        Dim FindWhat As String
        Dim SL As Long    ' start line
        Dim EL As Long    ' end line
        Dim SC As Long    ' start column
        Dim EC As Long    ' end column
        Dim Found As Boolean
        Dim i As Integer, h As Long
     
        i = 1
     
        NomProjet = VBE.VBProjects.Item(i).Name
     
        If DeuxFois Then
     
        Else
            ReDim DetVarPublic(1 To 4, 1 To 1) As String
     
     
            DetVarPublic(1, 1) = "Module"
            DetVarPublic(2, 1) = "type de variable"
     
            DetVarPublic(3, 1) = "déclaration"
            DetVarPublic(4, 1) = "ligne"
        End If
     
     
        Set VBProj = VBE.VBProjects.Item(NomProjet)
     
        For Each VBComp In VBProj.VBComponents
     
            If VBComp.Type <> 2 Then
     
                Set CodeMod = VBComp.CodeModule
     
                FindWhat = Quoi
     
                With CodeMod
                    SL = 1
                    If tout Then
                        EL = .CountOfLines
                    Else
                        EL = .CountOfDeclarationLines    'cherche seulement dans la partie Déclaration du module
                    End If
                    SC = 1
                    EC = 255
                    Found = .Find(Target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                                  EndLine:=EL, EndColumn:=EC, _
                                  wholeword:=True, MatchCase:=False, patternsearch:=False)
     
                    Do Until Found = False
                        If Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), 1) <> "'" Then      'pour eviter les lignes commentées
                            '                        Debug.Print "Found at: Line: " & CStr(SL) & " Column: " & CStr(SC) & " dans le module " & VBComp.Name & " ligne " & VBComp.CodeModule.Lines(SL, 1)
     
                            ReDim Preserve DetVarPublic(1 To 4, 1 To UBound(DetVarPublic, 2) + 1)
     
                            DetVarPublic(1, UBound(DetVarPublic, 2)) = VBComp.Name
     
                            Select Case Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), 3)
                            Case "Dim"
                                DetVarPublic(2, UBound(DetVarPublic, 2)) = "Variables niveau module"
                            Case "Global"
                                DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
                            Case Else
     
     
                                If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 5) = "Const" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "Constantes"
                                If InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), "Declare Function") > 0 Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "API"
                                If InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), "Declare Sub") > 0 Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "API"
     
                                If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 4) = "Enum" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "Enumération"
     
                                Select Case Quoi
     
                                Case "Public"
                                    'commence à 8 pour Public
                                    If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 8) <> "Function" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 5) <> "Const" _
                                       And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 7) <> "Declare" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 8, 4) <> "Enum" Then
                                        DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
                                    End If
     
                                Case "Private"
                                    'commence à 9 pour Public
                                    If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 8) <> "Function" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 5) <> "Const" _
                                       And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 7) <> "Declare" And Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 9, 4) <> "Enum" Then
                                        DetVarPublic(2, UBound(DetVarPublic, 2)) = "Variables niveau module"
                                    End If
     
                                Case "Global"
                                    DetVarPublic(2, UBound(DetVarPublic, 2)) = "Public (pour toute l'application)"
     
                                End Select
     
                            End Select
     
     
                            If Mid(LTrim(VBComp.CodeModule.Lines(SL, 1)), 1, 20) = "Application.TempVars" Then DetVarPublic(2, UBound(DetVarPublic, 2)) = "TempVars"
                            h = IIf(InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), Chr(39), 1) > 0, InStr(1, LTrim(VBComp.CodeModule.Lines(SL, 1)), Chr(39), 1), Len(LTrim(VBComp.CodeModule.Lines(SL, 1))))    '29/08/17
     
                            DetVarPublic(3, UBound(DetVarPublic, 2)) = Left(LTrim(VBComp.CodeModule.Lines(SL, 1)), h)
     
                            DetVarPublic(4, UBound(DetVarPublic, 2)) = SL
                        End If
     
                        If tout Then
                            EL = .CountOfLines
                        Else
                            EL = .CountOfDeclarationLines
                        End If
                        SC = EC + 1
                        EC = 255
     
                        Found = .Find(Target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                                      EndLine:=EL, EndColumn:=EC, _
                                      wholeword:=True, MatchCase:=False, patternsearch:=False)
     
                    Loop
     
                End With
            End If
            i = i + 1
        Next VBComp
     
    End Sub
     
    Sub Thierry()
    '    NomProjet = "Gestion pdm"  '"C:\*****\*****.accdb"
        SearchCodeModule3 "Public", False, False
        SearchCodeModule3 "Global", False, True
        SearchCodeModule3 "Dim", False, True
        SearchCodeModule3 "Private", False, True
        SearchCodeModule3 "Application.TempVars.Add", True, True
    End Sub
    J'avoue que je n'ais jamais essayé sans référencer 2 projets ensemble.
    Peut dire comment tu fais ?

    Cdlt

Discussions similaires

  1. Récupérer variable d'une autre application
    Par Supernatural dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2017, 11h20
  2. Comment accéder ma servlet depuis une autre machine?
    Par Aldian dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 10/09/2010, 16h48
  3. Réponses: 2
    Dernier message: 28/11/2006, 15h20
  4. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54

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