Excel 2010 - L'indice n'appartient pas à la sélection

Fermé
Alex - 22 nov. 2016 à 22:36
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 23 nov. 2016 à 11:47
Bonjour,

J'ai bâti une macro qui me permet d'extraire certaines feuilles du classeur principal vers un nouveau classeur. Essentiellement le script ressemble à ce qui se trouve ci-dessous. Tout fonction très bien (en Excel 2007), mais lorsque j'utilise le fichier à partir d'un autre poste doté d'Excel 2010, la macro s'arrête en cours de route et indique que l'indice n'appartient pas à la sélection sans préciser de ligne fautive.. des idées sur la raison pourquoi Excel 2010 me cause problème

Sub Export()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveWorkbook.Save

Dim retour As String
retour = Workbooks(ActiveWorkbook.Name).FullName

Dim chemin As String
chemin = Workbooks(ActiveWorkbook.Name).Path
nomfichier = ActiveSheet.Cells(3, 3).Value
Z = chemin & "\Suivi_" & nomfichier & ".xlsm"
ActiveWorkbook.SaveAs Filename:= _
Z, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

' Retrait des éléments non essentiels
Sheets(Array("BD_Axe", "BD_obj").Select
ActiveWindow.SelectedSheets.Delete
ActiveWorkbook.Save

' Retour à l'original
Dim nouveau As String
nouveau = "Suivi_" & ActiveSheet.Cells(3, 3).Value
Workbooks.Open (retour)
Workbooks(nouveau).Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox " Le fichier " & nouveau & "a bien été créé."
ActiveWorkbook.Close savechanges:=False

End Sub


A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
23 nov. 2016 à 11:47
Bonjour Alex,

Il manque la fermeture de la parenthèse dans la ligne Sheets(Array... Mais cela devrait planter pour toutes les versions ?!...

J'ai modifié quelques aberrations du style retour = Workbooks(Activeworkbook.Name).FullName
ainsi que l'ordre des lignes de code et ça semble fonctionner.

Le code :
Sub Export()
Dim retour As String
Dim chemin As String
Dim nouveau As String
Dim Z As String

Application.ScreenUpdating = False
ActiveWorkbook.Save
retour = ActiveWorkbook.FullName
chemin = ActiveWorkbook.Path & "\"
nouveau = "Suivi_" & ActiveSheet.Cells(3, 3).Value
Z = chemin & nouveau
ActiveWorkbook.SaveAs Filename:= _
Z, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.Sheets(Array("BD_Axe", "BD_obj")).Delete
Application.DisplayAlerts = True
MsgBox " Le fichier " & nouveau & " a bien été créé."
Workbooks.Open (retour)
Workbooks(nouveau & ".xlsm").Close True
Application.ScreenUpdating = True
End Sub

0