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
A voir également:
- Excel 2010 - L'indice n'appartient pas à la sélection
- Liste déroulante excel - Guide
- Indice téléphonique - Guide
- Word et excel gratuit - Guide
- Comment calculer la moyenne sur excel - Guide
- A qui appartient ce numéro - Guide
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 :
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