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 :

Sauvegarder une feuille d'un classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Par défaut Sauvegarder une feuille d'un classeur
    Bonjour à toutes et tous,

    Je voulais savoir s'il était possible de sauvegarder une feuille contenue dans un classeur. Je n'ai pas d'erreur avec mon code, mais je sauvegarde toujours le classeur complet, et nom la feuille en question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set XL = CreateObject("Excel.application")
    SOURCE="D:\mon_chemin"
    Set Folder = fso.GetFolder(SOURCE)
    Set XLS_FILES = Folder.Files
      for each files in XLS_FILES
       If files.Name = "mon-fhichier.xls" Then
         XL.Workbooks.Open(SOURCE & files.Name)
         XL.Run"Macro1"
         XL.ActiveWorkbook.Sheets("NOM-de-la-FEUILLE").Saveas(SOURCE & "NOM-de-la-FEUILLE.xls")
         XL.Quit
       End if
    Next
    Merci par avance de vos avis éclairés

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Essaye de copier la feuille dans un nouveau classeur avant de l'enregistrer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         XL.ActiveWorkbook.Sheets("NOM-de-la-FEUILLE").Copy
     
         XL.ActiveWorkbook.Saveas(SOURCE & "NOM-de-la-FEUILLE.xls")
    Si tu veux ensuite fermer ce classeur et non Excel lui meme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         XL.ActiveWorkbook.Close 'Au lieu de XL.Quit
    Cordialement,

    Tirex28/

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut phberanger et le forum
    Pas d'avis éclairé! Mais une feuille n'existe que dans un classeur (elle existe pour Excel et pas pour windows)
    Dans ta macro, tu ouvres une 2me instance d'Excel. Pourquoi ?
    Macro1 ? Pourquoi Run et pas Call ? Que fait-Elle ?
    Tu Crées un classeur du nom de la feuille avec "Saveas" => il l'applique automatiquement au classeur.
    Regardes dans l'aide de Saveas.
    A+

  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Par défaut Sauvegarder une feuille d'un classeur
    Bonjour à toutes et tous

    Merci pour vos réponses. C'est bon, j'ai bien la copie de ma feuille dans un autre fichier excel avec le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XL.ActiveWorkbook.Sheets("NOM-de-la-FEUILLE").Copy
    XL.ActiveWorkbook.Saveas(SOURCE & "NOM-de-la-FEUILLE.xls")
    Pour répondre à Gorfael, la macro va chercher des infos dans une base de données. Je fais un run car le call me renvoie une erreur. Par contre, je ne vois pas ou j'ouvre 2 instances d'excel? Ceci dit, je ne maitrise pas du tout le code.

    Encore merci

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut phberanger et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set XL = CreateObject("Excel.application")
    Pour moi, ça crée une 2ème application, mais comme je ne l'utilise jamais, je préfère poser la question.
    Pour Run, même problème. Je ne l'utilise que pour lancer une macro qui n'est pas en VBA d'Excel (access, word). Donc, je pose des questions. Mais plus par curiosité intellectuelle que pour préconiser un "meilleur" code.
    A+

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/02/2011, 19h28
  2. [XL-2003] Création d'une sauvegarde d'une feuille d'un classeur
    Par jordan973 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/09/2010, 22h43
  3. Sauvegarder une feuille spécifique dans un nouveau classeur Excel
    Par thomasisajerk dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/08/2010, 11h12
  4. [VBA-E]Existence d'une feuille dans un classeur EXCEL
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2006, 15h58
  5. [VBA-E]renommer une feuille d'un classeur
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2006, 09h17

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