Chercher des données dans plusieurs fichiers xls et les stocker dans un seul en se limitant à un qques onglets
Bonjour j'aimerais utiliser vba pour récupérer des noms de fichiers qui se trouvent dans plusieurs fichiers xls..
J'ai 21 immatricule lettrés à chercher dans 33 fichiers .xls dans un dossier et dans chaque fichier .xls il y a de 3 à 8 onglets à vérifier... :/
21 * 33 * 6 * temps pris pour chaque manip = :weird::weird::oops:
C'est pourquoi je vous solicite pour m'aider si possible ! 8O ..
j'ai commencé un bout de code, j'ai exposé mes problématiques au fur et à mesure du code, principalement , j'ai des problèmes d'accès de fichiers workbook et work sheet que je n'ai jamais géré jusqu'à présent... par exemple comment vba va piocher un fichier un des fichiers dans le dossier sans que j'ai l'explicité entièrement le nom de fichier à prendre.
Voilà je reste à votre disposition si vous avez besoin de plus de détails !
Je vous remercie d'avance chère communauté !
Code:
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
|
'Je veux savoir si une valeur texte existe dans les onglets types de plusieurs fichiers excels du même type
'mes problèmes sont comment ouvrir les fichiers excels ? changer de feuilles ? et cibler certaines feuilles sachant que leur nombre varie
'suivant le fichier excel
'déclaration de la variable texte à regarder dans les feuilles de calculs des différents fichiers excels
Dim Numligne as integer
Dim Texte as string
Dim classeur as Workbook
Dim feuille as ActiveWorkbook.Sheets
Application.ScreenUpdating = False ' pour accélérer la macro
With Sheets("résultats GRA")
Numligne = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'Première cellule vide
End With
'stocker dans "texte" la valeur de la cellule choisi boucler avec une For sur la colonne A ou sont rentrés les textes à chercher
'Fonction chercher le texte
'pour chaque texte regarder dans les onglets "HYPOTHESIS" puis les feuilles de calcul compris entre l'onglet "Feared Events" et l'onglet "EIS" (non inclus) parce _
'il y a un nombre de feuilles de calculs variable entre ces derniers feuillets.
For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
Set texte = Sheets("résultats GRA").Cells(i, 1)
'ouvrir un autre fichier excel dans lequel et chercher "texte" dans ce nouveau fichier excel ces fichiers sont contenus dans un répertoire _
'sur mon bureau, je ne sais pas comment y accéder via VBA
With ActiveWorkbook.Sheets
Set Texte = Sheets("HYPOTHESIS").Range("A1:F999").Find(Cells(i, 1), lookat:=xlPart)
If Texte Is Nothing Then
'changer de feuille et rechercher "texte"
else
With ActiveWorkbook.ActiveSheet
ActiveSheet.Cells(i, 1).EntireRow.Copy .Cells(Numligne, 1) 'copier la ligne entière de la feuille2
Numligne = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'Première cellule vide
End With
End If
next i
Application.ScreenUpdating = True ' pour raffraichir la page |