Déplacer une feuille d'un classeur a un autre [Résolu]

- 10 mai 2013 à 09:57 - Dernière réponse :  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.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 10 mai 2013 à 15:00
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
- 10 mai 2013 à 18:32
3
Merci
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.

Merci EnguerrandP 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de EnguerrandP
- 10 mai 2013 à 10:02
0
Merci
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
Commenter la réponse de EnguerrandP
- 10 mai 2013 à 10:50
0
Merci
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.
Commenter la réponse de EnguerrandP
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 10 mai 2013 à 14:38
0
Merci
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
Commenter la réponse de cs_MPi
- 10 mai 2013 à 14:47
0
Merci
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
Commenter la réponse de EnguerrandP
- 10 mai 2013 à 14:50
0
Merci
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
Commenter la réponse de EnguerrandP
- 10 mai 2013 à 15:10
0
Merci
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
Commenter la réponse de EnguerrandP

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.