Plantage Excel 2011 après méthode "delete"

Bonjour,

Je cherche à copier une feuille "Amortissements" dans mon classeur "2012 TEST" depuis mon classeur "2011 TEST".

Si une feuille du même nom existe déjà, je la supprime avant d'effectuer la copie. La suppression est effectuée avec la méthode "delete" de l'objet sheets.

Le code est assez simple et fonctionne :

Sub Test()

    Dim BilanN_1 As Workbook, BilanN As Workbook
    Dim AmortissementsN_1 As Worksheet, AmortissementsN As Worksheet

    Set BilanN = ThisWorkbook

        Application.DisplayAlerts = False
        Set BilanN_1 = Workbooks.Open("2011 TEST.xlsm", , True)

    'on supprime l'onglet Amortissements
        Set AmortissementsN = BilanN.Sheets("Amortissements")
        AmortissementsN.Delete
        Application.DisplayAlerts = True

    'on récupère les amortissements N-1
        Set AmortissementsN_1 = BilanN_1.Sheets("Amortissements")
        AmortissementsN_1.Copy after:=BilanN.Worksheets("Feuil1")

        BilanN_1.Close (False)

End Sub

Seulement si je le lance sous Excel 2011 sur Mac et effectue ensuite une sauvegarde, manuellement ou dans la macro, Excel plante.

Alors que si je le lance sous Excel 2007 ou +, tout se passe correctement, même la sauvegarde après coup.

Ci-joint le fichier "2012 TEST" avec la macro simplifiée au maximum et son pendant pour le test '"2011 TEST".

Merci pour tout aide que vous pourriez m'apporter parce que là je bloque vraiment !

132012-test.xlsm (42.45 Ko)
122011-test.xlsm (42.35 Ko)

Bonjour,

Essaie ceci :

Sub Test()
Dim BilanN_1 As Workbook, BilanN As Workbook
Dim AmortissementsN_1 As Worksheet, AmortissementsN As Worksheet

Set BilanN = ThisWorkbook

Application.DisplayAlerts = False
Set BilanN_1 = Workbooks.Open("2011 TEST.xlsm", , True)

'on supprime l'onglet Amortissements
Set AmortissementsN = BilanN.Sheets("Amortissements")
AmortissementsN.Delete
Application.DisplayAlerts = True

'on récupère les amortissements N-1
Set AmortissementsN_1 = BilanN_1.Sheets("Amortissements")
AmortissementsN_1.Copy After:=BilanN.Sheets("Feuil1") 'Workbooks(ThisWorkbook.Name).

BilanN_1.Close (False)
End Sub

Si ok, clique sur le V vert lors de ta réponse pour cloturer le fil

Amicalement

Merci pour cette réponse, Dan, c'est effectivement plus propre, mais cela ne fonctionne malheureusement pas mieux.

A la sauvegarde suivante, excel plante et une demande d'info supplémentaire sur le plantage indique un "exception : EXC_BAD_ACCESS"

re,

Il faudrait que tu me dises ce que tu fais pas à pas. pour que je vois si j'ai le même souci que toi.

En premier, essaie d'aller réparer tes autorisations dans "Utilitaire de disque" puis dis moi.

A te relire

J'ai effectué une réparation des autorisations, il y en a eu beaucoup de réparées mais aucun effet sur ce problème précis.

Pas à pas :

  • j'ouvre le fichier "TEST 2012", contenant un onglet "Feuil1" avec le bouton de macro et un onglet "Amortissements"
  • je modifie 2-3 cellules dans chaque onglet et vérifie que la sauvegarde manuelle s'effectue correctement
  • je lance la macro "Test" en appuyant sur le bouton "Test". Excel supprime alors bien la feuille "Amortissements" et copie bien la feuille du même nom provenant du classeur "2011 TEST"
  • j'effectue une sauvegarde manuelle qui provoque soit un ficheage d'excel ("l'appication ne répond pas"), soit un plantage en bon et due forme ("EXC_BAD_ACCESS").

- si je commente dans la macro les 2 lignes suivantes qui effectue le delete, je n'ai plus de problème, la sauvegarde qui suit ne fait plus rien planter.

'    Set AmortissementsN = BilanN.Sheets("Amortissements")
'    AmortissementsN.Delete

J'ai essayé au cas où en supprimant toute formule de l'onglet "Amortissements" et en décochant les options "masqué" et "protection" bien que ni les feuilles ni les classeurs ne soient protégés. Rien ne change.

ah du nouveau :

Je viens de faire un essai en supprimant le bouton "Test" de la feuille "Feuil1" et en lançant la macro depuis le menu "développeur/macros", et cela ne plante plus.

Un permier soulagement mais j'aimerais bien comprendre s'il s'agit d'un "bug" Excel ou s'il y a quelque chose à corriger pour pouvoir utiliser de nouveau un bouton...

Re,

si je commente dans la macro les 2 lignes suivantes qui effectue le delete, je n'ai plus de problème, la sauvegarde qui suit ne fait plus rien planter.

Pas compris ce que tu veux dire quand tu parles de "commente"

Pour ce qui est du bouton, bizarre car même depuis le menu développeur j'avais ce souci avant la première correction du code.

ce bouton, tu l'as créé sous excel MAC ou sous excel windows ??

A te relire

Re,

Je pense avoir trouvé ton souci.

Place cette ligne juste après --> Set BilanN = ThisWorkbook

BilanN.Sheets("Amortissements").Activate

Amicalement

Super ! cela résoud en effet le problème. Merci beaucoup !

Par contre, je suis preneur d'une explication car je ne comprends pas pourquoi il faudrait activer une feuille avant de la supprimer....

Rechercher des sujets similaires à "plantage 2011 methode delete"