Conctaténation d'onglets Excel

pledger

XLDnaute Junior
Bonjours à tous :)

Je vous contact car j'ai actuellement un problème : Je dispose d'une soixantaine de fichiers Excel, et chacun dispose de 12 onglets ( certains moins ). Ces onglets sont tous formater de la même manière.

Je souhaiterai donc savoir si il étais possible de concaténé tous les onglets d'un Classeur en un seul et si oui pouvez vous m'aidé ? :) J'ai quelques notions en Vba mais je reste un débutant.

Je précise également que dans ces fichiers il existe de nombreuses cellules fusionnées . Je met ci-joint un fichier exemple d'un onglet.

Regarde la pièce jointe OngletExemple.xls

Ps : Le fichier ci joint est formaté mais il n'y a aucune données. Etant en stage je suis tenue au secret professionnel. Merci de votre conpréhension :)

Merci d'avance :D
 

pledger

XLDnaute Junior
Re : Conctaténation d'onglets Excel

Bonjours kiki29 et merci de ce conseil =) malheureusement lorsque je lance le code
Option Explicit

Sub ConcatenationFeuilles()
Dim i As Long
Dim T() As Variant
Application.ScreenUpdating = False
ShConcat.Cells.Clear
For i = 1 To Sheets.Count
If Sheets(i).Name <> ShConcat.Name And IsNumeric(Sheets(i).Name) Then
With Sheets(i)
T = .Range("A7:F14").Value
ShConcat.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End If
Next i
Erase T
Application.ScreenUpdating = True
End Sub

J'obtient l'erreur : "erreur de compilation ; variable non définie"

Il me surligne en bleu cette ligne : ShConcat.Cells.Clear
 

job75

XLDnaute Barbatruc
Re : Conctaténation d'onglets Excel

Bonjour,

Le fichier n'aide pas beaucoup...

Si la feuille où l'on fait la concaténation est la feuille active, on peut essayer cette macro élémentaire :

Code:
Sub Copie()
Dim w As Worksheet
Application.ScreenUpdating = False
For Each w In Worksheets
  If w.Name <> ActiveSheet.Name Then _
  w.Range("1:" & w.[A65536].End(xlUp).Row).Copy ActiveSheet.[A65536].End(xlUp)(2)
Next
End Sub
Edit : on voit qu'on copie à partir de la ligne 1.

Si l'on veut copier à partir de la ligne 3 => w.Range("3:" & ...

A+
 
Dernière édition:

pledger

XLDnaute Junior
Re : Conctaténation d'onglets Excel

Merci à toi Job75 :D ça marche parfaitement. Je m'excuse encore une fois pour le fichier joint qui n'aide pas beaucoup mais cela touche à un sujet sensible .

Si je peut me permettre Job75 , est il possible ensuite de concaténé plusieurs fichiers Excel en un seul ?
 

job75

XLDnaute Barbatruc
Re : Conctaténation d'onglets Excel

Re,

On peut concaténer les feuilles de plusieurs fichiers, ils doivent être ouverts.

Toujours sur la feuille active du classeur actif :

Code:
Sub Copie()
Dim Wb As Workbook, w As Worksheet
Application.ScreenUpdating = False
For Each Wb In Workbooks 'fichiers ouverts
  For Each w In Wb.Worksheets
    If Wb.Name <> ActiveWorkbook.Name Or w.Name <> ActiveSheet.Name Then _
    w.Range("1:" & w.[A65536].End(xlUp).Row).Copy ActiveSheet.[A65536].End(xlUp)(2)
  Next
Next
End Sub
A+
 

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