Bonjour,
J'ai adapté la macro ci-dessous mais mon niveau VBA ne me permet pas d'obtenir ce que je voudrai.
L'import des données des classeurs se passe bien mais l'entête n'est importée que sur la 1er colonne en A1, comment faire pour l'importer sur les autres colonnes ?
Ca c'est la partie simple, idéalement l'entête est en D1 sur les classeurs et les données en B3:B300, l'import de la compilation serait en Ligne 1 sur les colonnes pour les entêtes et à partir de la ligne2 pour les données sur les colonnes en fonction du nombre de classeurs externes. (ça fonctionne déjà mais pas au bon endroit).
Si vous n'avez pas le temps je me contenterai du simple ,-)
Merci beaucoup
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ' copie les datas des classeurs externes dans ce classeur en creant un onglet Import Sub consolide() ChDir ThisWorkbook.Path Set classeurMaitre = ThisWorkbook ' sup i = 0 compteur = 0 'Ajoute une feuille à ce classeur Set feuille = classeurMaitre.Sheets.Add(After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)) feuille.Name = "Import" 'parcourir les classeurs de ce répertoire nf = Dir("*.xls") Do While nf <> "" If nf <> classeurMaitre.Name Then compteur = compteur + i Workbooks.Open Filename:=nf With ActiveWorkbook.Sheets(1).UsedRange If compteur = 1 Then 'si compteur = 1 copie avec la ligne d'entête de la plage .Copy Destination:=feuille.Cells(Rows.Count, 1).End(xlUp) Else 'sinon copie sans l'entête With .Offset(1).Resize(.Rows.Count, 1) .Copy Destination:=feuille.Cells(Rows.Count, i).End(xlUp).Offset(1, 0) End With End If End With Workbooks(nf).Close False End If nf = Dir i = i + 1 Loop End Sub
Partager