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

Alex -  
ThauTheme Messages postés 1564 Statut Membre -
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

1 réponse

  1. ThauTheme Messages postés 1564 Statut Membre 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