Excel 2010 - L'indice n'appartient pas à la sélection
Alex
-
ThauTheme Messages postés 1564 Statut Membre -
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
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
-
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