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 :

Aide Macro copier une feuille d'un classeur [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Aide Macro copier une feuille d'un classeur
    Bonjour à tous,

    Voilà, je cherche à copier une feuille d'un classeur Excel et le sauvegarder dans un dossier.
    Je suis débutant sur VBA, j'ai pu établir le code ci dessous. Cependant, il me copie tout le classeur et non la feuille "Etape 2 - Factures EDF".

    Je cherche donc un peu d'aide pour corriger mon code.

    Je vous remercie par avance.

    Bien à vous.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub CommandButton1_Click()
    Dim nom As String
        nom = "Facture EDF_" & Sheets("ETAPE 2 - Factures EDF").Range("C4") & "_" & ActiveWorkbook.Name
        ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\Factures_EDF\" & nom
        rep = MsgBox("Votre facture est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub CommandButton1_Click()
    Dim nom As String
        nom = "Facture EDF_" & "_" & ThisWorkbook.Name
        CopySheetSaveAs ThisWorkbook.Sheets("BD BLS"), ThisWorkbook.Path & "\Factures_EDF\" & nom
        rep = MsgBox("Votre facture est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
     
    End Sub
    Sub CopySheetSaveAs(Feuille As Worksheet, Classeur As String)
    Dim Wb As Workbook
    Set Wb = Workbooks.Add
      Feuille.Copy Wb.Sheets(1)
       Wb.Sheets(1).Name = Feuille.Name
       If Dir(Classeur) <> "" Then Kill Classeur
       Wb.SaveAs Classeur
       Wb.Close flase
    End Sub
    Dernière modification par Invité ; 18/05/2015 à 10h36.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    Merci rdurupt,

    Cependant, j'ai du mal à adapter le script "CopySheetSaveAs" à mon fichier. Il ne fonctionne pas chez moi.

  4. #4
    Invité
    Invité(e)
    Par défaut
    tu n'as rien à adapter juste à copier coller?

    je ne donne jamais de source sans les tester!

    ton répertoire "\Factures_EDF\" existe bien
    sur quel ligne est l'erreur?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    J'ai un message d'erreur qui s'affiche : "Erreur d’exécution '9' : L'indice n'appartient pas à la sélection

    Et en cliquant sur Débogage, la ligne suivante est surlignée en jaune :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CopySheetSaveAs ThisWorkbook.Sheets("BD BLS"), ThisWorkbook.Path & "\Factures_EDF\" & nom

    EDIT: Et oui, le répertoire "\Factures_EDF\" existe bien.

  6. #6
    Invité
    Invité(e)
    Par défaut
    je ne suis pas sur que ton onglet s'appel "BD BLS" qui est mon classeur d'exemple mais sans doute "ETAPE 2 - Factures EDF"

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    Ah oui en effet.

    Mais du coup, j'ai 3 autres problèmes qui apparaissent.

    1) J'ai un autre message d'erreur qui s'affiche : Erreur d'exécution '1004' : Les projets VB et les feuilles XLM ne peuvent pas être enregistrés dans une feuille sans macros. en cliquant sur débogage, j'ai la ligne ci-dessous qui est surlignée 2) Le nouveau fichier s'ouvre sous le nom "Classeur". Alors que j'avais spécifié le nom du fichier dans la variable "nom". De plus, je ne veux pas que ce fichier s'ouvre mais qu'il s'enregistre directement dans le chemin spécifié.

    3) Le fichier ne s'enregistre pas dans le chemin spécifié. Quand j'active la macro, le nouveau fichier s'ouvre et puis je dois l'enregistrer sous manuellement.

  8. #8
    Invité
    Invité(e)
    Par défaut
    ton fichier change de nom quand tu l'enregistre!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Private Sub CommandButton1_Click()
    Dim nom As String
        nom = "Facture EDF_" & "_" & Split(ThisWorkbook.Name, ".")(0) & ".xlsx"
        CopySheetSaveAs ThisWorkbook.Sheets("ETAPE 2 - Factures EDF"), ThisWorkbook.Path & "\Factures_EDF\" & nom
        rep = MsgBox("Votre facture est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
     
    End Sub
    Sub CopySheetSaveAs(Feuille As Worksheet, Classeur As String)
    Dim Wb As Workbook
    Set Wb = Workbooks.Add
      Feuille.Copy Wb.Sheets(1)
       Wb.Sheets(1).Name = Feuille.Name
       If Dir(Classeur) <> "" Then Kill Classeur
       Application.DisplayAlerts = False
       Wb.SaveAs Classeur, FileFormat:=xlOpenXMLWorkbook
       Application.DisplayAlerts = True
       Wb.Close flase
    End Sub

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    C'est exactement ce que je veux.

    Merci de m'avoir accordé ton temps.

    Bonne journée à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. macro pour copier une feuille d'un classeur à un autre
    Par rihab92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2015, 21h05
  2. [XL-2003] copier une feuille sur un classeur fermé
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/01/2012, 19h23
  3. MACRO - Copier une feuille dans toutes les feuilles (sauf 2)
    Par macto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/02/2011, 08h53
  4. Copier une feuille dans un classeur nouvellement créé
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/11/2008, 10h57
  5. je veu copier une feuille d'un classeur et il affiche erreur 424
    Par booskap dans le forum Macros et VBA Excel
    Réponses: 58
    Dernier message: 26/07/2007, 09h31

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