Déplacer une feuille d'un classeur a un autre

Résolu
EnguerrandP - 10 mai 2013 à 09:57
 EnguerrandP - 10 mai 2013 à 18:32
Bonjour ,
Je ne connait pas bien le fonctionnement de la fonction sheet.Move

Théme:
Je suis entreint de crée un programme de commande
dans celui-ci lorsque l'on passe une commande elle est automatiquement archiver.

Etat du code :
Le code pour crée un répertoire marche c'est le déplacement d'une feuille vers un autre classeur qui ne fonctionne pas.

Code :
             If Dir("C:\Historique" & Année & "" & Fs & ".xls") <> "" Then
             ' Sinon on y rajoute une feuille
                MsgBox "Ajout d'une feuille de commande au classeur du fournisseur"
                ActiveWorkbook.Sheets("Archive").Copy
                ActiveSheet.Name = "Archive" & "_" & Date_C
                ActiveWorkbook.Sheets("Archive" & "_" & Date_C).Move Before:=Workbooks(Fs & ".xls").Sheets(1)
                ActiveWorkbook.Save
              End If


Merci d'avoir pris le temps de me lire.

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 mai 2013 à 15:00
Bonjour,
il me dit toujour que sa n'appartient pas a la sélection

est-tu bien certain de l'exactitude du mot que j'ai souligné dans la cotation de ce que tu as écrit ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
EnguerrandP
10 mai 2013 à 18:32
Re bonjour ,
Je vient de trouver la solution a mon problème
voila le code :
         If Dir("C:\Historique" & Année & "" & Fs & ".xlsx") <> "" Then
             ' Sinon on y rajoute une feuille : '
                MsgBox "Ajout d'une feuille de commande au classeur du fournisseur"
                Sheets("Archive").Select
                Workbooks.Open "C:\Historique" & Année & "" & Fs & ".xlsx"
                Workbooks("Commande.xlsm").Activate
                Sheets("Archive").Copy After:=Workbooks(Fs & ".xlsx").Sheets(1)
                Sheets("Archive").Select
                Sheets("Archive").Name = "Archive" & "_" & Date_C
         End If  


Il suffisait que je réactive le classeur commande aprés avoir ouver celui du fournisseur

Merci acfoutu:
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.


c'est se qui ma fait comprendre pourquoi tu ne me réponder pas je te remercie de m'avoir laiser cherche pour trouver la solution par moi méme.
3
EnguerrandP
10 mai 2013 à 10:02
Re bonjour
J'ai oublier de vous dire le méssage d'érreur qui apparait lors du test.

érreur d'execution '9':
l'indice n'appartient pas à la sélection

voila merci de m'avoir préter un peu de votre attention
0
EnguerrandP
10 mai 2013 à 10:50
Re bonjour ,
J'ai essayer de le faire avec lenregistreur de macro .

Voila le code obtenu
    
         If Dir("C:\Historique" & Année & "" & Fs & ".xls") <> "" Then
             ' Sinon on y rajoute une feuille
                MsgBox "Ajout d'une feuille de commande au classeur du fournisseur"
                Sheets("Archive").Select
                Sheets("Archive").Copy After:=Workbooks("Accent bio.xls").Sheets(1)
                Sheets("Archive").Select
                Sheets("Archive").Name = "Archive_10_05_2013"              End If


mon soucis c'est qu'il me dit toujour que sa n'appartient pas a la sélection.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 mai 2013 à 14:38
Bonjour,

Est-ce que le classeur [Accent bio.xls] est bien ouvert quand tu lances cette macro ?


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
EnguerrandP
10 mai 2013 à 14:47
bonjour ,
Est-ce que le classeur [Accent bio.xls] est bien ouvert quand tu lances cette macro ?


         If Dir("C:\Historique" & Année & "" & Fs & ".xlsx") <> "" Then
             ' Sinon on y rajoute une feuille
                MsgBox "Ajout d'une feuille de commande au classeur du fournisseur"
                Sheets("Archive").Select
                Workbooks.Open "C:\Historique" & Année & "" & Fs & ".xlsx"
                Sheets("Archive").Copy After:=Workbooks(Fs & ".xlsx").Sheets(1)
                Sheets("Archive").Select
                Sheets("Archive").Name = "Archive" & "_" & Date_C
         End If


non il n'est pas ouver

alors j'ai rajouter:
Workbooks.Open "C:\Historique" & Année & "" & Fs & ".xlsx"

mais sa ne change rien.

Merci d'avoir pris le temps de me répondre
0
EnguerrandP
10 mai 2013 à 14:50
Re bonjour
éxcuse moi j'ai oublier de te dire sur quel ligne le debbuger me signal l'érreur:
                Sheets("Archive").Copy After:=Workbooks(Fs & ".xlsx").Sheets(1)


merci
0
EnguerrandP
10 mai 2013 à 15:10
Bonjour ,
Oui je confirme il me dit :"érreur d'éxecution'9':
l'indice n'appartient pas a la sélection"

Je vous remt le code de toute la gestion de l'archivage( car sa en fait parti):

' -Sauvegarde la commande dans le dossier historique '

      '1) on crée le dossier dans toutes les cas (et s'il existe déjà, on gère) :
     Année = 2013
      On Error Resume Next
      MkDir "C:\Historique" & Année & ""
      
      On Error GoTo 0
      
      '2) on regarde si le répertoire est vide :
      
      If Dir("C:\Historique" & Année & "") = "" Then
      ' Si oui on crée le classeur fournisseur
         MsgBox "Répertoire vide"
         Sheets("Archive").Copy
           With ActiveWorkbook
               .SaveAs Filename:="C:\Historique" & Année & "" & Fs & ".xlsx"
               .Sheets("Archive").Name = "Archive" & "_" & Date_C
               .Close
           End With
           
      'ou
      '3) Sinon on regarde s'il contient un fichier particulier
      ElseIf Dir("C:\Historique" & Année & "") <> "" Then

         If Dir("C:\Historique" & Année & "" & Fs & ".xlsx") <> "" Then
             ' Sinon on y rajoute une feuille
                MsgBox "Ajout d'une feuille de commande au classeur du fournisseur"
                Sheets("Archive").Select
                Workbooks.Open "C:\Historique" & Année & "" & Fs & ".xlsx"
                Sheets("Archive").Copy After:=Workbooks(Fs & ".xlsx").Sheets(1)
                Sheets("Archive").Select
                Sheets("Archive").Name = "Archive" & "_" & Date_C
                Workbooks.Open "C:\Historique" & Année & "" & Fs & ".xlsx"
         End If

             If Dir("C:\Historique" & Année & "" & Fs & ".xlsx") = "" Then
             ' Si le classeur n'éxiste pas on le créé
                MsgBox "création du classeur"
                Sheets("Archive").Copy
                  With ActiveWorkbook
                      .SaveAs Filename:="C:\Historique" & Année & "" & Fs & ".xlsx"
                      .Sheets("Archive").Name = "Archive" & "_" & Date_C
                      .Close
                  End With
                  
             End If

           End If
0
Rejoignez-nous