Petite modification d'un code VBA
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:
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 |