Bonjour à tous,
J'ai actuellement le code ci-dessous qui me permet d'afficher des onglets masqués, d'ouvrir un second classeur pour copier coller des données de celui-ci dans le classeur actif (2 onglets cachés + 1 visible dans le classeur actif, dans le second classeur les onglets sont visibles). Une fois fait le second classeur se ferme sans sauvegarder.
Je voulais savoir si il y avait possibilité d'améliorer mon code et ainsi rendre cette opération plus rapide.
J'ai indiqué les numéros des onglets et non des feuilles.
Merci d'avance pour votre aide.
J'ai actuellement le code ci-dessous qui me permet d'afficher des onglets masqués, d'ouvrir un second classeur pour copier coller des données de celui-ci dans le classeur actif (2 onglets cachés + 1 visible dans le classeur actif, dans le second classeur les onglets sont visibles). Une fois fait le second classeur se ferme sans sauvegarder.
Je voulais savoir si il y avait possibilité d'améliorer mon code et ainsi rendre cette opération plus rapide.
J'ai indiqué les numéros des onglets et non des feuilles.
Merci d'avance pour votre aide.
VB:
Sub Importer_Données_second_classeur()
With Application
.StatusBar = "Imporation et calculs"
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Application.ScreenUpdating = False
On Error Resume Next
Workbooks.Open ("C:\Users\....." & X.xlsm")
Dim wa As Workbook, wb As Workbook, wc As Worksheet, wd As Worksheet, we As Worksheet, wf As Worksheet, wg As Worksheet, wh As Worksheet, sh As Variant
Set wa = ThisWorkbook
Set wb = Workbooks("Classeur1.xlsm")
Set wc = ThisWorkbook.Worksheets("Onglets2")
Set wd = ThisWorkbook.Worksheets("Onglets4")
Set we = ThisWorkbook.Worksheets("Onglets10")
Set wf = wb.Worksheets("Onglets2")
Set wg = wb.Worksheets("Onglets4")
Set wh = wb.Worksheets("Onglets10")
For Each sh In Array(wc, wd)
sh.Visible = True
Next sh
wf.[A1:BC20000].Copy Destination:=wc.[A1]
wg.[A1:K20000].Copy Destination:=wd.[A1]
wh.[B5:K500].Copy Destination:=we.[B5]
Application.CutCopyMode = False
wb.Close SaveChanges:=False
For Each sh In Array(wc, wd)
sh.Visible = False
Next sh
Application.ScreenUpdating = True
With Application
.StatusBar = ""
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With