Je dois concat=E9ner automatiquement les r=E9sultats de n=20
diff=E9rents fichiers ayant la m=EAme structure (noms des=20
colonnes). Par contre, je ne connais pas le nombre de=20
lignes rempli =E0 l'avance (variable selon les fichiers).
Est il possible via une macro de :
[1] r=E9cup=E9rer les lignes non vides pour un fichier N=20
[2] les ins=E9rer dans un excel global
[3] recommencer l'op=E9ration pour le fichier N+1 en collant=20
=E0 la suite dans le fichier excel global=20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
Ce que j'ai compris: Vous voulez empiler les lignes de différents classeurs dans un seul classeur récepteur.
Si c'est bien ça, voici une solution en VBA. Insérez ce code dans un module de code d'un NOUVEAU classeur et faites tourner. La boîte de dialogue "Ouvrir" vous demandera de choisir un classeur excel. Seule la feuille active de ce dernier sera recopiée dans le classeur récepteur. Refaites tourner la macro pour un autre classeur dont les données de la feuille active viendront se joindre aux premières données. Et ainsi de suite jusqu'à plus soif.
A plus.
PMO Patrick Morange
***************************** Option Explicit
Sub JoinFiles() Dim var Dim nbLig& Application.ScreenUpdating = False var = Application.Dialogs(xlDialogOpen).Show If Not var Then Exit Sub End If var = ActiveSheet.UsedRange ActiveWorkbook.Close nbLig& = ActiveSheet.UsedRange.Rows.Count If nbLig& = 1 Then Range(Cells(1, 1), _ Cells(UBound(var, 1), _ UBound(var, 2))) = var Else Range(Cells(nbLig& + 1, 1), _ Cells(nbLig& + UBound(var, 1), _ UBound(var, 2))) = var End If End Sub ********************************
-----Message d'origine----- Bonjour,
Je dois concaténer automatiquement les résultats de n différents fichiers ayant la même structure (noms des colonnes). Par contre, je ne connais pas le nombre de lignes rempli à l'avance (variable selon les fichiers).
Est il possible via une macro de : [1] récupérer les lignes non vides pour un fichier N [2] les insérer dans un excel global [3] recommencer l'opération pour le fichier N+1 en collant
à la suite dans le fichier excel global
Merci d'avance .
Bonjour,
Ce que j'ai compris:
Vous voulez empiler les lignes de différents classeurs
dans un seul classeur récepteur.
Si c'est bien ça, voici une solution en VBA.
Insérez ce code dans un module de code d'un
NOUVEAU classeur et faites tourner.
La boîte de dialogue "Ouvrir" vous demandera de
choisir un classeur excel. Seule la feuille active de
ce dernier sera recopiée dans le classeur récepteur.
Refaites tourner la macro pour un autre classeur dont
les données de la feuille active viendront se joindre
aux premières données. Et ainsi de suite jusqu'à
plus soif.
A plus.
PMO
Patrick Morange
*****************************
Option Explicit
Sub JoinFiles()
Dim var
Dim nbLig&
Application.ScreenUpdating = False
var = Application.Dialogs(xlDialogOpen).Show
If Not var Then
Exit Sub
End If
var = ActiveSheet.UsedRange
ActiveWorkbook.Close
nbLig& = ActiveSheet.UsedRange.Rows.Count
If nbLig& = 1 Then
Range(Cells(1, 1), _
Cells(UBound(var, 1), _
UBound(var, 2))) = var
Else
Range(Cells(nbLig& + 1, 1), _
Cells(nbLig& + UBound(var, 1), _
UBound(var, 2))) = var
End If
End Sub
********************************
-----Message d'origine-----
Bonjour,
Je dois concaténer automatiquement les résultats de n
différents fichiers ayant la même structure (noms des
colonnes). Par contre, je ne connais pas le nombre de
lignes rempli à l'avance (variable selon les fichiers).
Est il possible via une macro de :
[1] récupérer les lignes non vides pour un fichier N
[2] les insérer dans un excel global
[3] recommencer l'opération pour le fichier N+1 en
collant
Ce que j'ai compris: Vous voulez empiler les lignes de différents classeurs dans un seul classeur récepteur.
Si c'est bien ça, voici une solution en VBA. Insérez ce code dans un module de code d'un NOUVEAU classeur et faites tourner. La boîte de dialogue "Ouvrir" vous demandera de choisir un classeur excel. Seule la feuille active de ce dernier sera recopiée dans le classeur récepteur. Refaites tourner la macro pour un autre classeur dont les données de la feuille active viendront se joindre aux premières données. Et ainsi de suite jusqu'à plus soif.
A plus.
PMO Patrick Morange
***************************** Option Explicit
Sub JoinFiles() Dim var Dim nbLig& Application.ScreenUpdating = False var = Application.Dialogs(xlDialogOpen).Show If Not var Then Exit Sub End If var = ActiveSheet.UsedRange ActiveWorkbook.Close nbLig& = ActiveSheet.UsedRange.Rows.Count If nbLig& = 1 Then Range(Cells(1, 1), _ Cells(UBound(var, 1), _ UBound(var, 2))) = var Else Range(Cells(nbLig& + 1, 1), _ Cells(nbLig& + UBound(var, 1), _ UBound(var, 2))) = var End If End Sub ********************************
-----Message d'origine----- Bonjour,
Je dois concaténer automatiquement les résultats de n différents fichiers ayant la même structure (noms des colonnes). Par contre, je ne connais pas le nombre de lignes rempli à l'avance (variable selon les fichiers).
Est il possible via une macro de : [1] récupérer les lignes non vides pour un fichier N [2] les insérer dans un excel global [3] recommencer l'opération pour le fichier N+1 en collant