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 :

[VBA-E] Question sur la méthode "SaveAs"


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [VBA-E] Question sur la méthode "SaveAs"
    Hello

    C'est encore moi et du coup une nouvelle question lol

    Voici le code que je veux utiliser sous VBA d'Excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expression.SaveAs(Filename, FileFormat, ReadOnlyRecommended)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    expression : Obligatoire. Expression qui renvoie un objet Chart ou Worksheet (Syntaxe 1) ou un objet Workbook (Syntaxe 2).
     
    Filename : Argument de type Variant facultatif. Chaîne qui indique le nom du fichier à enregistrer. Vous pouvez inclure un chemin complet ; si vous ne le faites pas, Microsoft Excel enregistre le fichier dans le dossier en cours.
     
    FileFormat : Argument de type Variant facultatif. Format de fichier à utiliser quand vous enregistrez le fichier. Pour obtenir une liste des choix possibles, consultez la propriété FileFormat. Dans le cas d'un fichier existant, le format par défaut est le dernier format de fichier spécifié. Dans le cas d'un nouveau fichier, la valeur par défaut est le format de la version de Microsoft Excel en cours d'utilisation.
     
    ReadOnlyRecommended : Argument de type Variant facultatif. Affectez-lui la valeur True pour afficher, à l'ouverture du fichier, un message qui conseille d'ouvrir celui-ci en lecture seule.
    En fait, j'ai fait pas mal de manip mais je n'arrive pas à y remédier, j'ai toujours des erreurs.

    Je veux juste créer une commande qui permet de copier une feuille dans un classeur pour l'enregistrer en format xls.
    Je m'explique.
    Ma feuille s'appelle "Bordereau". Une fois que celle-ci est remplie, j'appuie sur un bouton de commande qui va me permettre d'enregistrer la feuille en format xls. Mais j'ai essayé avec le code précédent et j'ai dû faire une fausse manip.

    Donc ma question est:
    Est-ce que j'utilise le bon code pour faire ce que je veux faire? Et est-ce que quelqu'un peut me donner un exemple pour savoir ce qu'il faut mettre dans les parenthèses au niveau du code svp?

    J'espère que quelqu'un pourra m'aider.

    Merci d'avance et je reste à votre disposition pour toutes questions.

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    bonjour

    cet exemple copie la feuille "Bordereau" et l'enregistre en lecture seule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Bordereau").Copy
    ActiveWorkbook.SaveAs Filename:="C:\maSauvegarde.xls", ReadOnlyRecommended:=True
    'ActiveWorkbook.Close
    bonne journée

    Michel

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Super, c'est ce que je voulais.

    Merci michelxld

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Par contre, est-ce qu'il serait possible d'avoir la fenêtre "Enregistrer sous", car au fur et à mesure, il y aura différent numéro de bordereau à sauvegarder dans un dossier à chaque fois que le bordereau sera édité.
    Est-ce possible?

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    pour obtenir la fenetre, Application.GetSaveAsFilename.

    La syntaxe suivante est correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Application.GetSaveAsFilename

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Bordereau").Copy 
    ActiveWorkbook.SaveAs Application.GetSaveAsFilename,  Filename:="C:\maSauvegarde.xls", ReadOnlyRecommended:=True

    Si je fais ça, il y a un problème car la fenêtre "Enregistrer sous" est bien présente, mais au niveau de l'extension de la feuille (.xls) celui est manquant et du coup ça m'enregistre le fichier sans extension.(même si je le rajoute à la main je ne peux pas lire la feuille).

    Et quand je quitte sur "Annuler", ça me dit que la Méthode 'SaveAs' de l'objet '_WorkBook' a échoué.

    Que dois-je faire svp?

  7. #7
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomFichier= Application.GetSaveAsFilename(fileFilter:="Classeur Excel (*.xls), *.xls")
    ActiveWorkbook.SaveAs Filename:=NomFichier, FileFormat := xlWorkbookNormal, ReadOnlyRecommended:=True

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci bidou

    Et merci à votre forum pour l'aide que l'on peut trouver.

    @ bientôt

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

Discussions similaires

  1. {VBA Excel}Question sur la lecture de fichier excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2007, 09h12
  2. {VBA Excel}Questions sur la creation graphique
    Par ferronimus dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/08/2007, 10h37
  3. [VBA-E] Question sur les Array de plages
    Par ruzakruzak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/06/2007, 15h14
  4. [VBA-E] Question sur image dans userform ?
    Par damsmut dans le forum Excel
    Réponses: 3
    Dernier message: 04/04/2007, 05h32
  5. [VBA-Excel] Question sur les Treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/12/2006, 16h21

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