VBA - Extraction de lignes de divers fichiers vers un autre fichier

vikvalesteam

XLDnaute Nouveau
Bonjour a tous!
Tout d'abord, j'espere ne pas m'etre trompé de thème...
je suis a la recherche d'une ame charitable qui puisse m'aider...et qui soit meilleur que moi en VBA(ce qui n'est pas difficile)
je ne pense pas que ce que je demmande soit trop difficile, quoique...

j'ai a ma disposition 5 fichier appellés (team1, team2,...,team5)
chacun de ces fichiers dispose de plusieurs feuilles qui n'ont pas des noms predefinis...
sur chacune de ces feuilles, il y a des listes avec une colonne ou il y a des "yes" ou des "no".

ce que je veux faire, c'est dans un nouveau fichier qu'on appellera "Summury" mettre toutes les lignes qui possedent le champs "yes". ces lignes etant dans toutes les feuilles de tous les fichiers...

j'espere etre assez clair...

j'avais pensé faire une boucle "for i=1 to 5" qui passe les fichier les uns apres les autres dans laquelle on passe les feuilles les une apres les autres avec "for j=1 to nbfeuille"
(je crois qu'on peut avoir nbfeuille=worksheets.Count)
et donc dans cette derniere boucle, faire une sorte de copier un tri et de le coller par valeur a la suite de mon fichier "summary"

je ne sais pas si c'est vraiment faisable, mais je pense que ca devrait pas etre trop dur pour vous...en tout cas si vous avez une idee je suis preneur

merci de votre aide
 

Paritec

XLDnaute Barbatruc
Re : VBA - Extraction de lignes de divers fichiers vers un autre fichier

bonjour vikvalesteam le forum
le plus simple est de nous joindre un petit fichier avec quelques lignes team1 par exemple et ton Summury et je te fais la macro qui va bien, et aussi nous donner l'adresse de tes fichiers ou me dire s'ils sont dans le même dossier Summury et les 5 team ???
a+
Papou:)
 

vikvalesteam

XLDnaute Nouveau
Re : VBA - Extraction de lignes de divers fichiers vers un autre fichier

Salut papou! merci pour la rapadite

voila un zip avec le tout. qq petites precisions: les sheet 1 de chaque "team" sont la pour lancer une autre macro pour ajouter des infos depuis un autre fichier...il faudra donc commencer a chercher a partir de le deuxieme je suppose.

le summary cree une nouvelle feuille avec la date... tu peux aller fouiller un peu mais c'est pas tres complique.

d'ailleur au passage si tu sait comment supprimer le enable disable a chaque foi , ca m'interesse

merci bcp!
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA - Extraction de lignes de divers fichiers vers un autre fichier

Bonjour le fil, bonjour le forum,

Une proposition avant l'intervention de Papou et donc avant d'avoir vu ton fichier. À adapter donc... Attention, ne fonctionne que si tous les fichiers sont ouverts !

Code:
Sub Macro1()
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim o As Worksheet 'déclare la variable o (Onglet)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)
Dim dest As Range 'déclare la variable dest (DESTination)
 
Set cc = Workbooks("Summury.xls") 'définit la classeur cible
For Each cs In Workbooks 'boucle 1 : sur touts les classeurs ouverts
    If Left(cs.Name, 4) = "team" Then 'condition 1 : si les 4 premières lettres du nom du classeur sont "team"
        For Each o In cs.Sheets 'boucle 2 : sur tous les onglets du classeur source
            Set r = o.Cells.Find("yes", , xlValues, xlWhole) 'définit la recherche
            If Not r Is Nothing Then 'condition 2 : si il existe au moins une occurrence trouvée
                pa = r.Address 'définit la première adresse
                Do 'exécute
                    'définit la cellule de destination
                    Set dest = cc.Sheets("Feuil1").Cells(Application.Rows.Count, 1).End(xlUp)(IIf(cc.Sheets("Feuil1").Range("A1").Value = "", 1, 2))
                    r.EntireRow.Copy dest 'copie la ligne entière et la colle dans la cellule de destination
                    Set r = o.Cells.FindNext(r) 'redéfinit la recherche (occurrence suivante)
                Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
            End If 'fin de la condition 2
        Next o 'prochain onglet de la boucle 2
    End If 'fin de la condition 1
Next cs 'prochain classseur de la boucle 1
End Sub
 

vikvalesteam

XLDnaute Nouveau
Re : VBA - Extraction de lignes de divers fichiers vers un autre fichier

Woaw Robert! quelle efficacite! je te remercie! tu m'as fais gagner un temps fou! juste un petit detail, ici on regarde dans toute la feuille, pas particulierement une colonne parce que il se peut qu'il se balade des Yes autre part... du coup ca foutrait le bordel. moi je veux juste qu'il cherche sur la colonne "Q"

en tout cas merci bcp!
et merci a papou aussi!
a bientot! :p
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA - Extraction de lignes de divers fichiers vers un autre fichier

Bonjour le fil, bonjour le forum,

Oui je me doutais bien que c'était dans une colonne spécifique mais tu aurais pu y penser avant...

Remplace :
Code:
Set r = o.Cells.Find("yes", , xlValues, xlWhole) 'définit la recherche
par :
Code:
Set r = o.Columns(17).Find("yes", , xlValues, xlWhole) 'définit la recherche
et :
Code:
Set r = o.Cells.FindNext(r) 'redéfinit la recherche (occurrence suivante)
par :
Code:
Set r = o.Columns(17).FindNext(r) 'redéfinit la recherche (occurrence suivante)

Des fois je me dis qu'au lieu de commenter les codes je devrais m'acheter un violon et y pisser allègrement dedans...
 

Discussions similaires

Réponses
8
Affichages
376

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16