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

Alex -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   160
 
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