IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier une feuille excel vers un classeur pour un archivage par date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut Copier une feuille excel vers un classeur pour un archivage par date
    Bonjour,
    Je cherche a faire un programme d'archivage de commande pour cela il faut que je copie une feuille excel du classeur "Commandes " vers le classeur "Fs" correspondant au fournisseur sélectionner.
    mon problème c'est que je ne sais pas comment fonctionne la fonction move qui permet de déplacer une feuille d'un classeur a un autre et qu'avec la fonction copy sa crée un nouveau classeur "Fs" en suppriment l'ancien.

  2. #2
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Avril 2012
    Messages : 49
    Par défaut Bonjour/bonsoir
    Sauf erreur de ma part Move permet de déplacer une feuille dans le classeur et donc de modifier "la chronologie" des feuilles dans le fichier.
    Avec un fichier source nommé Origine et un fichier de destination PourTest, il est possible d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Sheets("origine").Select
        Sheets("origine").Copy Before:=Workbooks("PourTEST.xlsx").Sheets(1)
        ActiveWorkbook.Save
    Ce code rudimentaire ne prend pas en charge l'existence du fichier de destination, ni s'il est ouvert etc, à vous de le prendre en considération, bien cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Re bonjour je vient de faire un essai mais il n'est pas concluant .

    Voila le code utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                 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

    Re bonjour ,
    J'ai essayer de le faire avec lenregistreur de macro .

    Voila le code obtenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
             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.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    Citation Envoyé par Enguerrand.P Voir le message
    R..
    mon soucis c'est qu'il me dit toujour que sa n'appartient pas a la sélection.
    sur qu'elle ligne ?



    sinon le but c'est souhaité c'est quoi Déplacer ? copier ? renommer ? la feuille "Archive" ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Bonjour
    le message apparait pour la ligne 6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Archive").Copy After:=Workbooks("Accent bio.xls").Sheets
    Le but et de copier une page de commande avec toute c'est information du classeur"commande" vers le classeur "Fournisseur"

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    j'ai encore du mal avec de détail , tu parle d'une feuille "commande" ? et d'un classeur "Fournisseur" et je ne les vois pas dans ton code ?

    en considérant que la feuille commande à copier est la feuille "Archive" du classeur contenant ta macro

    et tu veux copier celle-ci dans le classeur "Accent bio.xls" déjà ouvert manuellement ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wkDest As Workbook 'Classeur destinaire
       Set wkDest = Workbooks("Accent bio.xl")
       ThisWorkbook.Worksheets("Archive").Copy After:=wkDest.Sheets(wkDest.Sheets.Count)

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Bonjour ,
    J'ai un classeur "Commande" qui contient mes donnée fournisseur mes fiche de commandes est le systé qui envoi ou imprime une fiche commandes.

    maintenant je cherche a crée un systéme d'archivage de ses fiche commandes dans :
    C\Historique\Année(en cour)\Fs(fournisseur sélectionner.xlsx)

    si le répertoire est vide il crée bien le classeur Fs.xlsx
    mais si le classeur éxiste il ne veut pas copier la fiche de commande (ici "Archive") dans le classeur Fs.xlsx

    j'ai cherche a le faire avec l'enregistreur de macro mais je n'ai pas eu de succée.

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. Réponses: 15
    Dernier message: 23/05/2013, 19h33
  3. Réponses: 3
    Dernier message: 21/03/2013, 14h43
  4. Transferts d'une feuille excel vers un classeur
    Par zébule dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/03/2013, 12h01
  5. copier une feuille excel vers un autre fichier excel en access VBA
    Par acbdev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo