Erreur copie de classeur avec fichier xlsm

kalenjiman

XLDnaute Nouveau
Bonjour,

Je souhaite copier toutes les feuilles d'un classeur ouvert vers un nouveau classeur. J'utilisais sans aucun problème, sous Excel 2003, le code VBA ci-dessous . Désormais je suis sous Excel 2007, mon fichier a une extension xlsm et cela ne fonctionne plus. Merci de votre aide.


Code:
'Copier les feuilles vers un nouveau classeur
Dim Sh As Worksheet
Dim classeur2 As String
Dim classeur1 As String

    classeur1 = ActiveWorkbook.Name
    Workbooks.Add
    classeur2 = ActiveWorkbook.Name

     For Each Sh In Workbooks(classeur1).Worksheets
        Workbooks(classeur1).Sheets(Sh.Name).Copy After:=Workbooks(classeur2).Sheets(Sheets.Count)
    Next Sh

'Supprime les feuilles non nécessaires
Sheets("Feuil1").Delete
Sheets("Feuil2").Delete
Sheets("Feuil3").Delete

    Workbooks(classeur2).Activate
 

JNP

XLDnaute Barbatruc
Re : Erreur copie de classeur avec fichier xlsm

Bonjour KalenJiman :),
Je suis sous 2010 et la macro fonctionne sans problème :confused:...
J'ai juste rajouté 2 lignes pour éviter la demande de confirmation de suppression
Code:
Sub test()
'Copier les feuilles vers un nouveau classeur
Dim Sh As Worksheet
Dim classeur2 As String
Dim classeur1 As String
    classeur1 = ActiveWorkbook.Name
    Workbooks.Add
    classeur2 = ActiveWorkbook.Name
     For Each Sh In Workbooks(classeur1).Worksheets
        Workbooks(classeur1).Sheets(Sh.Name).Copy After:=Workbooks(classeur2).Sheets(Sheets.Count)
    Next Sh
'Supprime les feuilles non nécessaires
[COLOR=red]Application.DisplayAlerts = False[/COLOR]
Sheets("Feuil1").Delete
Sheets("Feuil2").Delete
Sheets("Feuil3").Delete
[COLOR=red]Application.DisplayAlerts = True[/COLOR]
    Workbooks(classeur2).Activate
End Sub
Bon courage :cool:
 

kalenjiman

XLDnaute Nouveau
Re : Erreur copie de classeur avec fichier xlsm

Bonjour,

J'ai essayé mais cela ne fonctionne pas sous 2007. Quelqu'un peut'il tester le fichier ci-joint au format "XLTM" et me dire cela fonctionne sous Excel 2010 ?

Quel modification doit'on apporter au code VBA pour que cela passe sous Excel 2007 ?


Merci
 

Pièces jointes

  • TEST.zip
    16.2 KB · Affichages: 44
  • TEST.zip
    16.2 KB · Affichages: 50
  • TEST.zip
    16.2 KB · Affichages: 52

JNP

XLDnaute Barbatruc
Re : Erreur copie de classeur avec fichier xlsm

Re :),
Je pense que le problème ne viens pas du code VBA, mais plutôt des options de 2007. Vérifie voir dans le gros bouton Windows, en bas de la fenêtre Options Excel -> Centre de gestion de la confidentialité -> Paramètres du centre de gestion de la confidentialité -> Onglet Paramètre des macros que les macros ne sont pas désactivées et que l'accès approuvé au modèle d'objet VBA est bien coché.
Ton fichier fonctionne bien sûr sans problème sous 2010...
Bon courage :)
 

JNP

XLDnaute Barbatruc
Re : Erreur copie de classeur avec fichier xlsm

Re :),
Je t'assure que ton code est bon sous 2007, j'y étais y a pas si longtemps...
N'aurais tu pas une feuille (masquée aussi bien) qui s'appelerais Feuil1, Feuil2 ou Feuil3 ?
La ligne bloque à la copie de feuille, et ça, c'est valable quelle que soit la version... De plus, une macro qui fonctionnerait sous 2003 et 2010, mais pas sous 2007, ce serait vraiment bizarre...
Bon courage :cool:
 

kalenjiman

XLDnaute Nouveau
Re : Erreur copie de classeur avec fichier xlsm

J'ai trouvé Excel bloquait en raison du nombre de ligne. Il faut configuré Excel comme suit :
Options Excel > Enregistrement > Enregistrer les fichiers au format suivant : choisir Classeur Excel (*.xlsx)

Sinon la feuille crée contient moins de lignes que l'original et ça plante.:)


Merci de m'avoir aider et permis trouver la solution.
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 238
dernier inscrit
ds776001