Récupérer 1ere ligne après fusion de fichiers

kenavo

XLDnaute Junior
Bonsoir,
J'ai une macro qui fusionne des fichiers, elle marche bien mais je ne sais pas comment faire pour récupérer la 1ere ligne ( qui st les intitulés des colonnes) et la coller dans mon fichier destination
J'ai nommer une plage dynamique pour copier mes fichiers mais j'ai exclu la 1ere ligne afin de ne pas avoir cette ligne toutes les n lignes ds le fichier destination

Code:
'Cree une plage dynamique car le nbre de lignes varie suivant le fichier traité : permet de copie ensuite
'uniquement les lignes avec des données
Sub liste()
ActiveWorkbook.Names.Add Name:="Liste", RefersToR1C1:= _
        "=OFFSET(sheet1!R2C1,,,COUNTA(sheet1!C1)-1,18)"
End Sub

'La procedue recup va ouvrir chaque fichier se trouvant ds le chemin defini à l'aide de :
'Chemin = "C:\Documents and Settings\Fred\Bureau\Test Fusion\ et copie les données de chacun
'dans le fichier fusion

Sub recup()
Range("A2").Select 'sélectionner la cellule de début
Chemin = "C:\Documents and Settings\Fred\Bureau\Test Fusion\" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(Chemin & "*.xls") ' Premier fichier
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
'appel de la procedure liste
Call liste
Range("Liste").Copy
ThisWorkbook.Activate
ActiveSheet.Paste
Windows(Fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
Fichier = Dir ' Fichier suivant
Loop
End Sub

Si quelqu'un a une idée
Merci
 

Gorfael

XLDnaute Barbatruc
Re : Récupérer 1ere ligne après fusion de fichiers

Salut kenavo et le forum
On partira du principe que la feuille active est celle qui doit réceptionner les données :
Code:
'Cree une plage dynamique car le nbre de lignes varie suivant le fichier traité : permet de copie ensuite
'uniquement les lignes avec des données
Sub liste()
ActiveWorkbook.Names.Add Name:="Liste", RefersToR1C1:= _
        "=OFFSET(sheet1!R2C1,,,COUNTA(sheet1!C1)-1,18)"
End Sub

'La procedue recup va ouvrir chaque fichier se trouvant ds le chemin defini à l'aide de :
'Chemin = "C:\Documents and Settings\Fred\Bureau\Test Fusion\ et copie les données de chacun
'dans le fichier fusion

Sub recup()
Dim F As Worksheet
Set F = ActiveSheet
Chemin = "C:\Documents and Settings\Fred\Bureau\Test Fusion\" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(Chemin & "*.xls") ' Premier fichier
Do While Fichier <> ""
    Workbooks.Open Filename:=Chemin & Fichier
    'appel de la procedure liste
    Call liste
    If F.[A1] = "" Then Rows(1).Copy F.Rows(1)
    Range("Liste").Copy F.Cells(Rows.Count,"A").End(xlUp)(2)
    ActiveWorkbook.Close savechanges:=False
    Fichier = Dir ' Fichier suivant
Loop
End Sub
C'est ton code, à peine remanier.
A+
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote