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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| Sub Concat()
' suppression de résultat précédent
'Worksheets("Resultat").Cells.Delete
Worksheets("Resultat").Rows("10:65536").Delete
'Choix du répertoire des scénarios à concaténer
100: reponse = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , "Sélectionner le répertoire en cliquant sur un des fichiers Excel")
If reponse = False Then Exit Sub
chemin = reponse
Call concatener_fichier(chemin)
reponse1 = MsgBox("Voulez-vous importer un autre fichier?", vbYesNo + vbQuestion, "Arrêt de la procédure")
If reponse1 = vbNo Then End
GoTo 100
End Sub
Sub concatener_fichier(nom_fichier)
'Permet de concaténer dans une même feuille le contenu du plusieurs scénarios
' ===============================================================================================
Application.ScreenUpdating = False
'nom du fichier global qui va recevoir la concaténation des fichiers CA
Fichier_global = ActiveWorkbook.Name
'Activation de la feuille SOURCE pour recevoir les données
Worksheets("Resultat").Activate
'Nombre de lignes du fichier global
nb_row_global = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
'ouverture du fichier
Workbooks.Open nom_fichier, ReadOnly:=True
Application.StatusBar = "Lecture en cours : " & ActiveWorkbook.Name
'Copie des lignes du fichier SITCOM et collage dans le fichier global après la dernière ligne
'ActiveWorkbook.Sheets(1).Activate 'feuille la plus à gauche dans le classeur
ActiveWorkbook.Sheets("FICHIER A MODIFIER").Activate 'feuille nommée FICHIER A MODIFIER dans le classeur
nb_row = Application.WorksheetFunction.CountA(ActiveSheet.Range("D:D"))
'Copie du format (notamment pour avoir les format % et dates)
ActiveWorkbook.ActiveSheet.Rows("2:" & nb_row).Copy
Workbooks(Fichier_global).Worksheets("Resultat").Range("A" & nb_row_global + 2).PasteSpecial Paste:=xlPasteValues
Workbooks(Fichier_global).Worksheets("Resultat").Range("A" & nb_row_global + 2).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
'Fermeture du fichier CA
ActiveWorkbook.Close savechanges:=False
'Réactivation du fichier global
Workbooks(Fichier_global).Activate
Range("A1").Select
'Fin
Application.StatusBar = False
End Sub |
Partager