Je souhaiterais importer plusieurs pages d’un même fichier xlsx (donnees) vers un autre fichier (traitement) avec un emplacement specifiques. J’ai renommé les onglets avec le même nom.
J’ai testé deux solutions qui ne fonctionnent pas à savoir :
Bonsoir,
Voici ce que j’ai fait. C’est fait surmesure.
Sub FichierTexte()
Dim sFichier As String
sFichier = Application.GetOpenFilename("Fichiers Texte (*.xlsx),*.xlsx", , "Choisissez le fichier à traiter")
If sFichier = "" Then
MsgBox "Aucun fichier choisi", vbOKOnly + vbCritical, "Traitement annulé"
Exit Sub
Else
Workbooks.Open sFichier
With Sheets(Array(Sheets(2).Name, Sheets(3).Name, Sheets(4).Name, Sheets(5).Name))
.Select
.Copy Before:=Workbooks("traitement.xlsm").Sheets(2)
End With
Windows("traitement.xlsm").Activate
Application.DisplayAlerts = False
Sheets(Array(Sheets(6).Name, Sheets(7).Name, Sheets(8).Name, Sheets(9).Name)).Delete
End If
End Sub
La feuille à copier sur le fichier « données » doit commencer par la feuille 2
dont : feuille2, feuille3, feuille4 et feuille5
Les feuilles copiées vont se mettre après la 1er feuille.
Elles vont avoir les mêmes positions : feuille2, feuille3, feuille4 et feuille5
Les feuilles en vert que vous avez mis vont être supprimer. feuille6, feuille7, feuille8 et feuille9
Un fichier d’exemple : traitement.xlsm (102,0 Ko)
Sub FichierTexte()
Dim sFichier As String, Source As String, Traitement As String
Dim i As Integer
Traitement = ActiveWorkbook.Name
sFichier = Application.GetOpenFilename("Fichiers Texte (*.xlsx),*.xlsx", , "Choisissez le fichier à traiter")
If sFichier = "" Then
MsgBox "Aucun fichier choisi", vbOKOnly + vbCritical, "Traitement annulé"
Exit Sub
Else
Workbooks.Open sFichier
Source = ActiveWorkbook.Name
Application.ScreenUpdating = False
For i = 2 To 9
Sheets(i).Select
Cells.Copy
Windows(Traitement).Activate
Sheets(i).Select
Cells.PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
Windows(Source).Activate
Next
Application.ScreenUpdating = True
Windows(Traitement).Activate
Windows(Source).Close
Sheets(1).Select
End If
End Sub