Je souhaite copier une feuille de calcul et la placer DIRECTEMENT après une autre feuille. Mais j'ai des problèmes quand il y a des feuilles cachées. En utilisant Excel 2013, j'ouvre un nouveau classeur. Ajouter une feuille après "Feuille1". Renommez-le "HiddenSheet2" Ajouter une feuille après "HiddenSheet2". Renommer nouvelle feuille "Feuil3" j'ai donc "Sheet1" - "HiddenSheet1" - "Feuil3" cachent ensuite "HiddenSheet1"Excel VBA WorkSheet.Copy Après Excel 2013
Suivant exécuter ce code VBA:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
End Sub
La feuille insérée obtenir placé après "HiddenSheet2" et non après "Sheet1". J'ai trouvé que la feuille copiée devient la feuille active.
Get Handle on last worksheet copied by Worksheet.Copy
VBA Copy Sheet to End of Workbook (with Hidden Worksheets)
Mais mon problème est que je dois la feuille de rester dans un ordre précis.
Merci
Edit:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
ThisWorkbook.ActiveSheet.Move After:=Sheets(wst.Index)
End Sub
Cela ne reçoit pas la nouvelle feuille directement après "Sheet1" non plus.
Pourquoi ne pas utiliser 'wst.copy après: = wst'? – glh
Ce que dit @glh. Vous avez déjà 'wst' comme variable de feuille de calcul. Utilisez simplement cela pour l'argument 'After' :) –
' wst.copy après: = wst' et 'wst.copy après: = Sheets (" Sheet1 ")' produit les mêmes résultats. Ma nouvelle feuille se place après la feuille cachée et pas directement après "Sheet1" – Jonathan