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