Importer des Lignes de plusieurs fichier contenant une valeur dans un autre

  • Auteur de la discussion louisic
  • Date de début

louisic

Nouveau membre
Bonjour à tous,
Je travail avec Office 2010 et je cherche à produire une macro qui me permettrait de chercher dans plusieurs fichier d'un même dossier, à partir d'un autre fichier, une valeur variable inscrite dans la colonne précédent une valeur fixe et importé l'intégralité des lignes contenant cette valeur variable dans la colonne "C".
Ex :
Dans le fichier « A », situé dans le dossier « Y », j’exécute la macro et je cherche la valeur « surv. ».
Dans le fichier « B », situé dans le dossier « X »,se trouve la valeur « surv. » en G14. J’importe alors l’entête du fchier « B » se trouvant en (B3:E7) et je prends F14 que je recherche dans la colonne C du fichier « B ». J’importe alors toutes les lignes du fichier « B », ayant cette valeur en «C 20» à « C120 », dans le fichier « A » feuille 2. Ainsi de suite pour le fichier « C, D, E, … » contenu dans le Dossier « X ».
Voilà ou j’en suis :

Code:
Sub Recherche_ligne()

    Dim Dossier As String
    Dim Fichier_X As String
    Dim Fichier_A As String
    Dim MyFind As Variant
    Dim FoundCell As Object
    Dim Counter As Long
    
    ' ---------------------------------
    MyFind = "surv."
    If MyFind = "" Then End
    Counter = 0
    Fichier_A = "Fichier_A.xls"
   
    On Error Resume Next
    '------------------------------------------------
    
    Set FS = CreateObject("Scripting.FileSystemObject")
    
    'Dans le dossier Y
    Set Dossier_Y = FS.GetFolder
    
    'Dans les Fichiers ".XLS"
    Set Fichier_X = Dossier.Files

    'Dans la feuille 1
    Set ws = Worksheets("Feuil1")
   
    Do
        Workbooks.Open Fichier_X
        Set FoundCell = ws.Cells.Find(what:=MyFind)
        If Not FoundCell Is Nothing Then

           FirstAddress = FoundCell.Address
           Do
              Counter = Counter + 1
              FoundCell.EntireRow.Copy Destination:=Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
              ThisWorkbook.ws.Cells.FindNext(FoundCell)
           Loop While Not FoundCell Is Nothing And FoundCell.Address <> FirstAddress
        End If
    
    Loop While Fichier <> ""
    rsp = MsgBox(Counter & " Résultats trouvés")
    
End Sub

Merci de votre aide!
 

BEBER1212

Expert
Bonjour,

Je vois déjà ce que va te dire Zeb. Alors avant qu'il se fâche tout rouge ( :fou: ), lis le règlement, et en particulier :

Le règlement stipule que toute pièce de code doit être présentée grâce à la balise
Code:
[/b]

De rien  ;)
 

sphynxounet

Habitué
J'ai jamais essayer en VBA mais c'est possible de travailler sur plusieurs fichiers ?
Si oui je suppose qu'il faut passer par un module ?
 

zeb

Modérateur
Salut,

M'enfin, Excel sait travailler avec plusieurs fichiers. Il faut donc que son système de macro puisse le faire aussi.
Par ailleurs ce système est le Visual Basic. Heureusement qu'un tel langage sait ouvrir plusieurs fichiers :/
 

zeb

Modérateur
Ohlala, je viens de lire le code ! Il y a du pas mal du tout là-dedans :), des approximations :/ , et aussi des erreurs grossières :(.

Ligne 25, tu utilises Dir() pour charger ta variable Fichier mais il manque le rechargement de cette variable à la fin de la boucle !
(Relis l'aide sur Dir()).

Ligne 28, tu utilises une variable pour ta feuille. Eh, fais-en autant pour tes classeurs !

Ligne 36, c'est quoi Liste ?

Revois ça.

--------------

Je n'aime pas la fonction Dir(). C'est comme ça :spamafote: Dans mes exemples, j'utiliserai FileSystemObject. Je t'invite à te renseigner sur cet objet pour bien les comprendres.
 

zeb

Modérateur
Arfff... T'as tout changé dans ton premier message. Du coup, les messages suivants ne sont plus pertinents. Spa grave. Je relis ton code et je reprends.
 

zeb

Modérateur
Pour commencer, quelques commentaires :
Code:
Sub Recherche_ligne()

    Dim Dossier As String
    Dim Fichier_X As String
    Dim Fichier_A As String
    Dim MyFind As Variant ' // <-- Pourquoi pas un String ?
    Dim FoundCell As Object
    Dim Counter As Long
   
    ' ---------------------------------
    MyFind = "surv."
    ' // Euh... On est un peu sûr du résulat ;)    
    If MyFind = "" Then End
    Counter = 0
    Fichier_A = "Fichier_A.xls"

    On Error Resume Next
    '------------------------------------------------
   
    ' // Oui et après ? :D
    ' // La variable n'est pas déclarée
    Set FS = CreateObject("Scripting.FileSystemObject" )
   
    'Dans le dossier Y
    ' // Euh... Faut donner un chemin, là !
    ' // La variable n'est pas déclarée
    Set Dossier_Y = FS.GetFolder
   
    'Dans les Fichiers ".XLS"    
    ' // Lapin compris ce que tu cherches.
    ' // Dossier est une chaîne.
    Set Fichier_X = Dossier.Files
    'Dans la feuille 1
    ' // Dans quel classeur ?
    Set ws = Worksheets("Feuil1" )
 
    Do
        ' // Et ma variable pour classeur ?
        Workbooks.Open Fichier_X
        Set FoundCell = ws.Cells.Find(what:=MyFind)
        If Not FoundCell Is Nothing Then
            ' // La variable n'est pas déclarée
            FirstAddress = FoundCell.Address
            Do
                Counter = Counter + 1
                FoundCell.EntireRow.Copy Destination:=Sheets("Feuil2" ).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
                ' // Ohlala !!!!
                ThisWorkbook.ws.Cells.FindNext(FoundCell)
            Loop While Not FoundCell Is Nothing And FoundCell.Address <> FirstAddress
        End If
    ' // Cette variable n'existe plus.
    Loop While Fichier <> ""
    ' // Pas de majuscule à résultat. Et la gestion du pluriel ?
    rsp = MsgBox(Counter & " Résultats trouvés" )
End Sub
 

zeb

Modérateur
Au départ, je voulais que tu te concentres sur les fichiers, les classeurs et les feuilles. Je t'aurai fait le FSO.
Bah, spa grave.

D'abord, deux petites choses : ajoute Microsoft Scripting Runtime (scrrun.dll) à tes références et utilise l'Option explicit, ce qui t'obligera à déclarer tes variables.

Comment boucler sur une liste de fichier ?
Code:
Dim FS     As New FileSystemObject
Dim file   As Scripting.file
Dim folder As Scripting.folder

Set folder = FS.GetFolder(Environ("USERPROFILE"))
' // Si le dossier n'existe pas, VB s'arrête.

For Each file In folder.Files
    MsgBox file.Path
    ' // Faire quelque chose de ce fichier
    
Next

Comment filtrer sur un type de fichier particulier ?
Code:
If ucase(file.Name) Like "*.XLS" Then

Allez, on y est presque. ;)
 

louisic

Nouveau membre
Un gros merci Zeb, ca m'a donné un bon coup de main!

Me reste plus qu'a boucler dans le fichier.

Voilà ou j'en suis :

Code:
Sub Rech_line_In_XLS_of_One_Folder()

    'Fonction de la macro : Rechercher une ligne contenant "SURV" dans plusieurs fichier Excel d'un dossier
    '-------------------------------------------------
    'Déclaration de variable
    '-------------------------------------------------

    Dim FS                  As New FileSystemObject
    Dim Dossier_Y           As Scripting.folder
    Dim Path_Dossier_Y      As String
    Dim Fichier_X           As Scripting.file
    
    Dim Feuille             As Worksheet
    Dim Recherche_cell      As Object   'Cellule ou se trouve la valeur cherché
        
    Dim Premiere_Addresse   As Object   'Première Adresse d'écriture de résultat
    Dim Adresse_Actuel      As Object   'Adresse ou se trouve le dernier résultat copié
    Dim Adresse_No_Compte   As Object   'Adresse ou se trouve le no de compte du batiment dans le fichier XLS
    Dim Adresse_No_Client   As Object   'Adresse ou se trouve le no de client du batiment dans le fichier XLS
    Dim Adresse_Batiment    As Object   'Adresse ou se trouve le nom du batiment dans le fichier XLS
    
    Dim MyFind              As String   'La valeur chercher dans le fichier .XLS
    Dim Compteur_Resultat   As Long     'Compteur de résultat dans le fichier .XLS
    Dim Compteur_Res_total  As Long     'Compteur de résultat dans tout les fichier .XLS
    Dim Compteur_Bat        As Long     'Competur de fichier .XLS
        
    '-------------------------------------------------
    'Valeur de départ
    '-------------------------------------------------

    'Défini les lignes de l'entête de chaque fichier
    'Adresse_No_Compte = Range("b3")
    'Adresse_No_Client = Range("b4")
    'Adresse_Batiment = Range("b7")
   
    MyFind = "24HR / AUX"
    Compteur_Resultat = 0
    Compteur_Res_total = 0
    Compteur_Bat = 0
    Set FS = CreateObject("Scripting.FileSystemObject")
    
    'Dans le dossier Y
    Path_Dossier_Y = "c:\Dossier_Y"
    Set Dossier_Y = FS.GetFolder(Path_Dossier_Y)
    
    '--------------------------------------------------
    'Programmation
    '--------------------------------------------------
    
    For Each Fichier_X In Dossier_Y.Files
    
        If UCase(Fichier_X.Name) Like "*.XLS" Then
        
            Compteur_Bat = Compteur_Bat + 1
            Compteur_Resultat = 0
            'Ouvre le fichier_X
            Workbooks.Open Fichier_X

            'Dans la feuille 1
            Set Feuille = Worksheets("Feuil1")
            Set Recherche_cell = Feuille.Cells.Find(what:=MyFind)

            '------------------------------------------
            'Copie l'entête avant les lignes résultats
            'Adresse_Batiment.EntireRow.Copy Destination:=Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            'Adresse_No_Compte.EntireRow.Copy Destination:=Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            'Adresse_No_Client.EntireRow.Copy Destination:=Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            '------------------------------------------
            
            If Not Recherche_cell Is Nothing Then

                Premiere_Addresse = Recherche_cell.Address
                
                Do
                    Compteur_Resultat = Compteur_Resultat + 1
                    Compteur_Res_total = Compteur_Res_total + 1
                    Recherche_cell.EntireRow.Copy Destination:=Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
                    Set Recherche_cell = Feuille.Cells.FindNext(Recherche_cell)
                                    
                Loop While Not Recherche_cell Is Nothing _
                And Recherche_cell.Address <> Premiere_Addresse
                
            End If
            MsgBox (Compteur_Resultat & " résultat(s) trouvé(s) dans " & Fichier_X)
            ActiveWindow.Close
        End If
    Next
    'A titre informatif
    MsgBox (Compteur_Res_total & " résultat(s) trouvé(s) au total dans " & Compteur_Bat & " batiment(s)")
    
End Sub
 

zeb

Modérateur
Etudie les différences entre ton code et cet extrait que je te propose :
Code:
Dim classeur_X As Workbook
Dim feuille_X1 As Wokrsheet

Compteur_Bat = Compteur_Bat + 1
Compteur_Resultat = 0
' // Ouvre le classeur_X/fichier_X
Set classeur_X  = Workbooks.Open(Fichier_X)
' // Dans la feuille 1 du classeur_X
Set feuille_X1 = classeur_X.Worksheets(1)
Set Recherche_cell = feuille_X1.Cells.Find(what:=MyFind)
If Not Recherche_cell Is Nothing Then
    Premiere_Addresse = Recherche_cell.Address
    Do
        Compteur_Resultat = Compteur_Resultat + 1
        Compteur_Res_total = Compteur_Res_total + 1
        Recherche_cell.EntireRow.Copy Destination:=ThisWorkbook.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Set Recherche_cell = feuille_X1.Cells.FindNext(Recherche_cell)
                       
    Loop While Not Recherche_cell Is Nothing _
           And Not Recherche_cell.Address <> Premiere_Addresse
End If
MsgBox (Compteur_Resultat & " résultat(s) trouvé(s) dans " & Fichier_X)
classeur_X.Close(False)
 

louisic

Nouveau membre
Hey Zeb,

Ca fonctionne!!!

J'y serais pas arriver sans toi! Merci!

Bon, bien sur, c'est pas encore la perfection mais je réussi en tirer ce que je veux.

Voici le bug:

Ma ligne de copie de résultat, comme à la ligne 16 de ton précédent message, ne s'incrémente pas. C'est à dire qu'a chaque passage elle écrase le résultat précédent. J'ai régler le problème en ajoutant un compteur de ligne que j'ai placé dans le rowOffset de la fonction Offset().

Pourtant, quand j'exécute cette commande dans une autre macro d'un autre fichier, pas de problème. Par contre, cet autre fichier est en Excel 2003.

Voila le code presque final :sweat:

Code:
Sub Rech_line_In_XLS_of_One_Folder()

    'Fonction de la macro : Rechercher une ligne contenant les caractères de b15 dans plusieurs fichier Excel d'un dossier dont le chemin est en b12
    '-------------------------------------------------
    'Déclaration de variable
    '-------------------------------------------------

    Dim FS                  As New FileSystemObject
    Dim Dossier_Y           As Scripting.folder
    Dim Path_Dossier_Y      As String
    Dim Fichier_X           As Scripting.file
    Dim Feuille             As Worksheet
    Dim Classeur            As Workbook
    
    Dim Recherche_cell      As Object   '// Cellule ou se trouve la valeur cherché
    Dim Premiere_Addresse   As String   '// Première Adresse d'écriture de résultat
    Dim MyFind              As String   '// La valeur chercher dans le fichier .XLS
    Dim Compteur_Resultat   As Long     '// Compteur de résultat dans le fichier .XLS
    Dim Compteur_Res_total  As Long     '// Compteur de résultat dans tout les fichier .XLS
    Dim Compteur_Bat        As Long     '// Compteur de fichier .XLS
    Dim Line                As Long     '// Compteur de line dans le fichier résultat
        
    '// -------------------------------------------------
    '// Valeur de départ
    '// -------------------------------------------------
    
    '// Nettoie la feuille résultat précédents
    ThisWorkbook.Worksheets("Resultat").Rows("1:65536").Delete Shift:=xlUp

    MyFind = ThisWorkbook.Worksheets("Prog").Cells(15, 2)
    Compteur_Resultat = 0
    Compteur_Res_total = 0
    Compteur_Bat = 0
    Line = 0
    
    Set FS = CreateObject("Scripting.FileSystemObject")
      
    '// Dans le dossier Y
    Path_Dossier_Y = ThisWorkbook.Worksheets("Prog").Cells(12, 2)
    Set Dossier_Y = FS.GetFolder(Path_Dossier_Y)
    
    '// --------------------------------------------------
    '// Programmation
    '// --------------------------------------------------
    
    For Each Fichier_X In Dossier_Y.Files
    
        If UCase(Fichier_X.Name) Like "*.XLS" Then
        
            Compteur_Bat = Compteur_Bat + 1
            Compteur_Resultat = 0
            
            '// Ouvre le fichier_X
            Set Classeur = Workbooks.Open(Fichier_X)

            '// Dans la feuille 1
            Set Feuille = Classeur.Worksheets("Feuil1")
            
            '// Définit la cellule a chercher dans la feuille
            Set Recherche_cell = Feuille.Cells.Find(what:=MyFind)
            
            If Not Recherche_cell Is Nothing Then
                
                '// Copie l'entête avant les lignes résultats
                Feuille.Rows("3:3").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                Line = Line + 1
                Feuille.Rows("4:4").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                Line = Line + 1
                Feuille.Rows("7:7").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                Line = Line + 1
                Feuille.Rows("18:18").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                Line = Line + 1
                Feuille.Rows("19:19").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                Line = Line + 1
                '// ------------------------------------------
                        
                Premiere_Addresse = Recherche_cell.Address
                          
                Do
                    Compteur_Resultat = Compteur_Resultat + 1
                    Compteur_Res_total = Compteur_Res_total + 1
                    '// On Copie la ligne de la cellule trouvé
                    Recherche_cell.EntireRow.Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
                    Line = Line + 1
                    '// On passe à la prochaine
                    Set Recherche_cell = Feuille.Cells.FindNext(Recherche_cell)

                Loop While Not Recherche_cell Is Nothing _
                And Recherche_cell.Address <> Premiere_Addresse
                
            End If
            Classeur.Close (False)
        End If
        '// Ligne de séparation entre les résultat d'un fichiers d'un autre
        Line = Line + 1
    Next
    '// A titre informatif
    MsgBox (Compteur_Res_total & " résultat(s) trouvé(s), au total, dans " & Compteur_Bat & " batiment(s)")
    
End Sub
 

zeb

Modérateur
Salut,

Code:
For Each Fichier_X In Dossier_Y.Files
Tu voudrais bien resté cohérent avec tes X et des Y.

Pas bien compris ton problème, mais j'ai repéré un tout petit bug., ligne 83.

Code:
Recherche_cell.EntireRow.Copy Destination:=ThisWorkbook.Worksheets("Resultat" ).Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
Tout les objets sont bien désignés sauf le nombre de lignes. On ne sait pas de quelles zone il s'agit. Voià comment il faudrait l'écrire :
Code:
Recherche_cell.EntireRow.Copy Destination:=ThisWorkbook.Worksheets("Resultat" ).Cells(ThisWorkbook.Worksheets("Resultat" ).Rows.Count, 1).End(xlUp).Offset(Line, 0)

C'est un peu lourd.

J'ai pris l'habitude de faire autrement. J'ai une "source" dans laquelle je lis et une "cible" vers laquelle j'écris.
Code:
Dim FS       As New FileSystemObject ' // Microsoft Scripting Runtime : %windir%\system32\scrrun.dll
Dim wanted   As String
Dim cell_trg As Range
Dim cell_src As Range
Dim f_src    As File
Dim wb_src   As Workbook
Dim ws_src   As Worksheet
Dim address1 As String

wanted = ThisWorkbook.Worksheets("Prog").Range("B15").Text

' // Cible (target)
ThisWorkbook.Worksheets("Resultat").Cells.Clear
Set cell_trg = ThisWorkbook.Worksheets("Resultat").Range("A1")

For Each f_src In FS.GetFolder(ThisWorkbook.Worksheets("Prog").Range("B12"))
    If UCase(f_src.Name) Like "*.XLS" Then
        Set wb_src = Workbooks.Open(f_src.Path, ReadOnly:=True)
        Set ws_src = wb_src.Worksheets(1)
        
        Set cell_src = ws_src.Cells.Find(wanted)
       
        If Not cell_src Is Nothing Then
           
            '// Copie l'entête avant les lignes résultats
            ws_src.Rows(3).Copy cell_trg
            Set cell_trg = cell_trg.Offset(1)
            ws_src.Rows(4).Copy cell_trg
            Set cell_trg = cell_trg.Offset(1)
            ws_src.Rows(7).Copy cell_trg
            Set cell_trg = cell_trg.Offset(1)
            ws_src.Rows(18).Copy cell_trg
            Set cell_trg = cell_trg.Offset(1)
            ws_src.Rows(19).Copy cell_trg
            Set cell_trg = cell_trg.Offset(1)
            
            address1 = cell_src.Address
            Do
                cell_src.EntireRow.Copy cell_trg
                Set cell_trg = cell_trg.Offset(1)
                Set cell_src = ws_src.Cells.FindNext(cell_src)
            Loop While Not cell_src Is Nothing _
                   And Not cell_src.Address = address1
           
        End If
        wb_src.Close savechanges:=False
    End If
    '// Ligne de séparation entre les résultat d'un fichiers d'un autre
    Set cell_trg = cell_trg.Offset(1)
Next
 

zeb

Modérateur
Je ne suis pas très satisfait des lignes 26 à 35. Ça manque de concision.

Factorisons :
Code:
For Each i In Array(3, 4, 7, 18, 19)
    ws_src.Rows(i).Copy cell_trg
    Set cell_trg = cell_trg.Offset(1)
Next
C'est mieux.

Voyons autre chose :
Code:
ws_src.Range("3:4,7:7,18:19").Copy cell_trg
Set cell_trg = cell_trg.Offset(5)
Pas mal non plus. C'est un peu moins hard-coder, mais c'est plus "expert Excel".

Quelle version préfères-tu ?
 

louisic

Nouveau membre
Salut Zeb,

J'ai essayé tes trucs avec tes "Range"

Code:
Dim cell_trg As Range
Dim cell_src As Range

De mon côté, ca ne donne pas le résultat voulu. Les résultats par fichier ce liste mais les fichiers s'écrase un par dessus l'autre.
J'ai donc conservé ma ligne de code (version corrigé) suivi de mon fameux compteur de ligne!! :whistle:

Code:
Recherche_cell.EntireRow.Copy Destination:=ThisWorkbook.Worksheets("Resultat" ).Cells(ThisWorkbook.Worksheets("Resultat" ).Rows.Count, 1).End(xlUp).Offset(Line, 0)
Line = Line +1

Par contre, j'ai révisé la copie de mon entête de fichier et grâce a ce que tu m'as donné, ca copie maintenant les cellules fusionné en plus de réduire le code. C'est génial!

Code:
'// Copie l'entête avant les lignes résultats
Feuille.Range("3:4,7:7,18:19").Copy Destination:=ThisWorkbook.Worksheets("Resultat").Cells(Rows.Count, 1).End(xlUp).Offset(Line, 0)
Line = Line + 5

J'ai aussi récupéré ta remise à zéro de la feuille résultat.

Code:
ThisWorkbook.Worksheets("Resultat" ).Cells.Clear

Ca a pour efffet, comparativement à mon "Delete", de garder les largeurs de ligne dans ma feuille "Résultat" intacte!

Merci Zeb, au plaisir!
 

charentais16

Nouveau membre
bonjour,

j'ai à peu près la même problématique que toi, et en cherchant sur le net j'ai trouvé ce forum avec ce sujet qui m'intéresse fortement, mais afin de capitaliser votre expérience, pourrais tu me donner le code final qui fonctionne ?
par avance merci
 

oozenot

Expert
Salut charentais 16,

capitaliser l'experiencec'est bien mais c'est pas en recopiant un code qui marche que tu arrivera a comprendre comment il fonctionne ni a l'adapter a ton cas. Le mieux serait que tu t'aide de ce qu'il y a ci dessus pour créer ton propre code.
Et si tu as un probleme, n'hésite pas a poster tes questions dans un nouveaux sujet (ca fait moins désordre), On t'orientera vers les reponses.

 

charentais16

Nouveau membre
Je comprend et je suis completement d'accord avec toi mais nous n'avons pas les compétences (en entreprise) et on ne me donne pas le temps de chercher !
 

oozenot

Expert
Salut zeb,

je ne suis jms parti tres loin mais il n'y avai plus de sujet ou je pouvais repondre... ou alors tu étais trop rapide...

Pour Charentais16 :
Le code complet et presque donné, assemble les réponses plus haut et tout le travail est fait. (reste qu'il te faudra qd meme ajuster a ton fichier) et sache que parfois partir sur un code tout fait et l'adapter est plus long que de partir de zéro !!

..
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 162
Messages
6 718 639
Membres
1 586 458
Dernier membre
Alex932
Partager cette page
Haut