Gengiskhan
XLDnaute Junior
Bonjour le forum,
mon problème est le suivant, je cherche a adapter une macro que j'ai récupéré sur ce même forum. celle-ci en fait :
en l'occurrence elle me permet de récupérer et consolider dans une seule feuille, la plage définit dans chaque fichier sélectionnés.
Je souhaite l'adapter en lui spécifiant non pas une chaine de caractère à "matcher" mais une liste de Nom d'onglets bien précis (peut-être à déclarer en autant de variables), a tester dans chaque classeur sélectionnés.
ex :
- si tu trouves dans classeur 1 soit "onglet1" soit "onglet 2" soit etc... alors sélectionner et copier.
- si tu trouve dans classeur 2 soit "onglet1" soit "onglet 2" soit etc... alors sélectionner et copier.
et ainsi de suite...
je ne sais pas si je suis assez clair ?
merci d'avance.
mon problème est le suivant, je cherche a adapter une macro que j'ai récupéré sur ce même forum. celle-ci en fait :
Code:
Option Explicit
Const sSheetList As String = "Conso BP"
Sub ConcatenateTables()
Dim vCurfile As Variant
Dim oCurWbk As Workbook
Dim oFD As FileDialog
Dim ws As Worksheet
Dim alexp As String
alexp = "Nom Onglet"
Set oFD = Application.FileDialog(msoFileDialogFilePicker)
oFD.AllowMultiSelect = True 'autoriser la sélection de plusieurs fichier
oFD.Filters.Clear 'RAZ des filtres de fichiers
oFD.Filters.Add Description:="Excel Files", Extensions:="*.xls;*.xlsx" 'filtrer sur les fichiers excel
oFD.Show 'afficher la boite de dialogue
If oFD.SelectedItems.Count > 0 Then
ThisWorkbook.Sheets(sSheetList).Range("A2").Select 'efface a partir de A2
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
For Each vCurfile In oFD.SelectedItems 'pour chaque fichier séléctionné
Application.DisplayAlerts = False
Set oCurWbk = Application.Workbooks.Open(Filename:=vCurfile) 'ouvrir le classeur
For Each ws In Worksheets 'Test sur le nom de tous les onglets
If InStr(1, ws.Name, alexp) <> 0 Then ' Selection des onglets qui contiennent la bonne chaine de caractere
ws.Activate
Range("a97:cm151").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Activate
ThisWorkbook.Sheets(sSheetList).Range("A65536").End(xlUp).Offset(1).Select
ThisWorkbook.Sheets(sSheetList).Paste
Application.CutCopyMode = False
End If
Next
oCurWbk.Close savechanges:=False 'fermer le classeur sans sauvegarder
Next vCurfile
End If
End Sub '~ConcatenateTables
en l'occurrence elle me permet de récupérer et consolider dans une seule feuille, la plage définit dans chaque fichier sélectionnés.
Je souhaite l'adapter en lui spécifiant non pas une chaine de caractère à "matcher" mais une liste de Nom d'onglets bien précis (peut-être à déclarer en autant de variables), a tester dans chaque classeur sélectionnés.
ex :
- si tu trouves dans classeur 1 soit "onglet1" soit "onglet 2" soit etc... alors sélectionner et copier.
- si tu trouve dans classeur 2 soit "onglet1" soit "onglet 2" soit etc... alors sélectionner et copier.
et ainsi de suite...
je ne sais pas si je suis assez clair ?
merci d'avance.