Déplacer une feuille d'un classeur à l'autre

  • Initiateur de la discussion Initiateur de la discussion ThierryAS3C
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ThierryAS3C

XLDnaute Nouveau
Bonjour,

Je bute sur un truc qui doit être tout simple mais...

Voilà. J'ai 2 classeurs, 1 utilisé tous les jours, le second pour les archives. Sur celui utilisé couramment, une feuille par semaine. Les noms des feuilles sont variables, non définies par avance.

Le besoin : lorsque toutes les infos pour une feuille sont enrichies, je souhaite, via une macro, déplacer la feuille vers le classeur d'archive. La feuille doit se positionner automatiquement à la suite des feuilles déjà existantes. Elle disparait donc du classeur courant.

Le code suivant :

Sub Archivage()
'
' Archivage
' Touche de raccourci du clavier: Ctrl+a
'
ActiveSheet.Select
ActiveSheet.Move After:=Workbooks( _
"avril à ... 07 ARCHIVE.xls").Sheets(Sheets.Count)
Windows("avril à ... 07 COURANT.xls").Activate
End Sub

ne fonctionne pas et me renvoie une erreur d'éxécution "9" : l'indice n'appartient pas à la sélection.

Si je mets :

ActiveSheet.Move After:=Workbooks( _
"avril à ... 07 ARCHIVE.xls").Sheets(2)

ça fonctionne mieux mais en me plaçant la feuille en seconde position dans le classeur archive.
A signaler que les 2 classeurs sont ouverts lors de l'éxécution de la macro. L'idéal serait même que la macro fonctionne à partir du classeur courant, qu'elle aille ouvrir le classeur archives (protégé par un mot de passe Outils Options générale de la boîte Enregistré sous...) et referme ensuite le classeur archive avec enregistrement. Mais, se sera là une seconde étape lorsque ce bête problème sera résolu.

Svp, où cela "coince-t-il" ?

Merci par avance pour votre aide.

Cordialement.

Thierry
 
Re : Déplacer une feuille d'un classeur à l'autre

Bonjour Thierry

essaye peut être comme ci dessous :

Code:
ActiveSheet.Move After:=Workbooks("avril à ... 07 ARCHIVE.xls").Sheets _
(Workbooks("avril à ... 07 ARCHIVE.xls").Sheets.Count)

bonne journée
@+
 
Re : Déplacer une feuille d'un classeur à l'autre

Bonjour Pierrot,


et merci pour ton aide.

Malheureusement, cela ne solutionne pas mon problème. J'obtiens toujours le message Erreur d'éxécution '9'.

Si tu as une autre idée, où si quelqu'un d'autre a une idée.

Merci et bonne journée.

Cordialement.

Thierry
 
Re : Déplacer une feuille d'un classeur à l'autre

Re

comprends pas, je viens de tester chez moi code ci dessous qui fonctionne :

Code:
ActiveSheet.Move After:=Workbooks("Classeur1").Sheets(Workbooks("Classeur1").Sheets.Count)

si tes noms de classeurs sont bons, cela devrait marcher...

@+

Edition : tu as bien au moins 2 feuilles dans le classeur source ?
 
Re : Déplacer une feuille d'un classeur à l'autre

Bonsoir Pierrot,

et merci d'avoir insisté en me disant que cela fonctionnait chez toi.

Du coup, j'ai fait un test en simplifiant le nom des classeurs et cela fonctionne. Le code final est donc :

Sub Archivage8()
'
' Archivage
' Touche de raccourci du clavier: Ctrl+x
'
'
ActiveSheet.Select
ActiveSheet.Move After:=Workbooks("ARCHIVE07").Sheets(Workbooks("ARCHIVE07").Sheets.Count)
Windows("COURANT07").Activate

End Sub

Pour ce qui est du nombre de feuilles, j'en ai une par semaine, soit environ une petite trentaine en permanence dans le classeur courant, le classeur archive en contenant quant à lui 52 car j'ai une archive par an.

Il me reste à présent à essayer de comprendre le problème de départ et retenter la chose avec les noms d'origine.

Merci encore et bon week-end.

Bien cordialement.

Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour