Created attachment 180306 [details] spreadsheet with 2 sheets and a macro Main using macro. adding a sheet (Calc) at any place but at the end may mess up diagrams of "next" sheet. In the example I join. The macro (Main) copy a sheet with 4 diagrams to a new one (Test), then create a new sheet (Concentrateur) before the last copied (Test). Comparing "Test" with "Modèle Séquence" on the "Test" sheet diagrams are not at the right position and 3 is missing. Note that if you move "Test" sheet the diagrams positions are ok! The same if you close and open the spreadsheet. Before creating the last sheet "Concentrateur" the positions are ok too ! Copy of the macro Sub Main dim const nomFeuilleDest = "test" dim const nomFeuilleModeleSequence = "Modèle Séquence" dim const nomFeuilleConcentrateur = "Concentrateur" with thisComponent if .sheets.hasByName( nomFeuilleDest) then _ .sheets.removeByName( nomFeuilleDest) .sheets.copyByName( nomFeuilleModeleSequence, nomFeuilleDest, .sheets.Count) if not .sheets.hasByName(nomFeuilleConcentrateur) then _ .sheets.insertNewByName(nomFeuilleConcentrateur, 2) ' NOTE the "2" end with msgbox "Done !" End Sub Version: 7.3.2.2 (x64) / LibreOffice Community Build ID: 49f2b1bff42cfccbd8f788c8dc32c1c309559be0 CPU threads: 2; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win Locale: fr-FR (pt_BR); UI: pt-BR Calc: threaded
Confirmed in Version: 7.3.3.1 (x64) / LibreOffice Community Build ID: 1688991ca59a3ca1c74bc2176b274fba1b034928 CPU threads: 8; OS: Windows 10.0 Build 17763; UI render: Skia/Raster; VCL: win Locale: cs-CZ (cs_CZ); UI: cs-CZ Calc: CL Another interesting fact is, if new sheet (Concentrateur) is created before the sheet 'test', then it is functional. Sub Main dim const nomFeuilleDest = "test" dim const nomFeuilleModeleSequence = "Modèle Séquence" dim const nomFeuilleConcentrateur = "Concentrateur" with thisComponent if not .sheets.hasByName(nomFeuilleConcentrateur) then .sheets.insertNewByName(nomFeuilleConcentrateur, 2) 'create the Concentrateur sheet firstly if .sheets.hasByName( nomFeuilleDest) then .sheets.removeByName( nomFeuilleDest) .sheets.copyByName( nomFeuilleModeleSequence, nomFeuilleDest, .sheets.Count) end with msgbox "Done !" End Sub
letting it after, but with .sheets.count (inserting at the end) there is also no problem ... if not .sheets.hasByName(nomFeuilleConcentrateur) then .sheets.insertNewByName(nomFeuilleConcentrateur, .sheets.count)