OVH Cloud OVH Cloud

VBA excel

1 réponse
Avatar
Thierry
Bonjour,

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

Merci d'avance

1 réponse

Avatar
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
.