Boucle de récuperation de données

jpmasclet

XLDnaute Occasionnel
BOnjour a tous,

Malgrés mes nombreuses recherche sur le sujet, je ne trouve pas de macro qui permet (ou je n'arrive pas surtout) a faire ce que j'ai besoin :

Mon besoin :

Je cherche a faire une boucle qui va recuperer environ 80 fichiers qui commence par quiz020208 , dans lequel, dans la feuille resultat je veux copier la zone A2:G51 pour la collé a la suite dans le fichier systhese quiz.xls.

le repertoire est C:/QUIZ/020208/

Autre information : aujourd'hui je suis sur un zone de A2 à G51 et dans le répertoire 0200208, le mois prochain je ferai la meme chose mais avec le repertoire 050308 et une zone différente, est ce possible de faire une variable de ce type ?


Voila mon besoin : Pouvez m'eclairer pour savoir comment je peux commencer a faire cela, dois je créer un userform ou j'indique les zones de variable par ex ?

par contre niveau boucle, j'ai jamais reussi a faire ça !!!


Mrerci par avance.
 

Staple1600

XLDnaute Barbatruc
Re : Boucle de récuperation de données

Bonjour


Regarde dans les fils du forum ( Recherche)

mots clés:
Lister répertoires


Tu trouveras des exemples


Pour le nom, tu peux essayer ce genre de syntaxe
Code:
Dim nom_fic as String
If nom_fic Like "quiz*" Then
'ton code
End If
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Boucle de récuperation de données

Re

Voici une macro à tester sur ton PC

(sur le mien ca fonctionne)

Le fichier dans le lequel tu mettras cette macro n'a pas besoin d'étre dans C:\QUIZZ
(Ca vaut mieux d'ailleurs car si tu l'appelles quizz.xls il sera pris en compte par la macro)

Tu peux l'appeler quizz.xls si tu le mets dans unu autre répertoire.


Code:
Sub scan_rep_QUIZZ()
'inspiré de : GetAllWorksheetNames ( de Dave Hawley)
'repris de ma réponse à ce post:
'http://www.excel-downloads.com/forum/88609-faire-dun-classeur-multifeuille-plusieur-classeur-monofeuille.html
Dim i As Integer
Dim Fin As Long
Dim Classeur_Dossier As Workbook
Dim Feuille As Worksheet
Dim Chemin As String
  
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
     
On Error Resume Next
Chemin = "C:\Quizz"
    
If Chemin = vbNullString Then Exit Sub
With Application.FileSearch
        .NewSearch
        .LookIn = Chemin
        .FileType = msoFileTypeExcelWorkbooks
        .Filename = "quiz*"
    If .Execute > 0 Then
            For i = 1 To .FoundFiles.Count
      
        Set Classeur_Dossier = Workbooks.Open(.FoundFiles(i))
    
            For Each Feuille In Classeur_Dossier.Worksheets
                Fin = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Row
                'ici adpater la la cellule de recopie si besoin
                Feuille.Range("A2:G51").Copy ThisWorkbook.Sheets(1).Range("A" & Fin)
             Next Feuille
        Classeur_Dossier.Close SaveChanges:=False
        Next i
End If
End With
     
On Error GoTo 0
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
 
Dernière édition:

jpmasclet

XLDnaute Occasionnel
Re : Boucle de récuperation de données

Bonjour et merci pour vos réponses,

Staple ta macro fonctionne très bien sauf qu'il faut aboslument que les infos soit prise dans la feuille résultats alors que la, ça me prend toutes les feuilles.

Il ya t'il un possibilité de modifier cela ?

merci bcp
 

jpmasclet

XLDnaute Occasionnel
Re : Boucle de récuperation de données

j'y arrive pas :(

blague a part, j'ai tenté de modifier le code mais aucun succes, mon VBA ne marche pas du tout, j'ai un probleme au niveau du each et ne sais pas comment le modifié....

Un petit indice ??

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 432
Messages
2 088 376
Membres
103 837
dernier inscrit
philmyl04