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 :

ThisWorkbook.SaveCopyAs - ou Copy ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 224
    Par défaut ThisWorkbook.SaveCopyAs - ou Copy ?
    Bonjour je voudrait faire une copie partielle de mon classeur en appuyant sur le bouton "cmdpartiel"

    Le but est de faire une copie SaveCopyAs ou une Copie et de ne sauver que la feuille 1 qui s'appelle "mafeuille" et seulement de B1 à K100.

    Pour pouvoir garder la mise en forme , les couleurs mis en place au départ par des mise en forme conditionnelles.

    Au départ j'avais dans l'idée un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Private Sub cmdpartiel_Click()
    Dim Path As String, valeur As String
    Path = Worksheets("mafeuille").Path & "\"      'SEUL: Path = ActiveWorkbook.Path & "\" FONCTIONNE MAIS CA COPIE TOUT
     
    valeur = "macopie_" & Format(Date, "dd_mm_yy") & "_" & Format(Time, "hh-mm") & ".xlsm"
     
    Worksheets("mafeuille").SaveCopyAs Path & valeur
    End Sub
    Mais sa fonctionne pas :/ ... une petite idée ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Mais sa fonctionne pas :/ ... une petite idée ?
    Oui. Une idée toute simple et assez évidente :
    1) créer dynamiquement un nouveau classeur
    2) y créer une feuille et la nommer
    3) utiliser la méthode Range.Copy pour y coller la plage du premier classeur que tu veux que cette feuille contienne
    4) sauvegarder ce nouveau classeur où tu le souhaites.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 224
    Par défaut
    Bonjour peut on l'enregistrer alors sous un autre dossier "ma sauvegarde" ... faire un SaveCopyAs en indiquant un chemin pour atteindre le dossier ?

    Merci.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le plus simple est de faire un Copy sur la Worksheet souhaitée, sans rien mettre concernant la destination (ni Before, ni After).
    Ca créera un nouveau classeur automatiquement qui deviendra le classeur Actif.
    Il te suffit alors de faire un simple SaveAs sur ce classeur.
    Voir : https://msdn.microsoft.com/fr-fr/lib.../ff837784.aspx

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 224
    Par défaut
    Bonsoir, mais j'aimerai "sauver sous" le classeur entier ! dans le dossier de mon choix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub cmdexport_Click()
     
    Dim Path As String, valeur As String
    Path = ActiveWorkbook.Path & "\"
     
     
     valeur = "Export_" & Format(Date, "dd_mmmm_yyyy") & "_" & Format(Time, "hh-mm") & ".xlsm"
    ThisWorkbook.SaveCopyAs Path & valeur
    End Sub
    Comment ça , on enregistre tout comme je veux mais j'aimerai pouvoir l'enregistrer ailleurs que le classeur initial.


    Merci.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Apoulit Voir le message
    Bonsoir, mais j'aimerai "sauver sous" le classeur entier ! dans le dossier de mon choix
    Il va falloir que tu sois plus clair concernant ta demande.

    La feuille que tu veux copier, tu veux la copier dans ton classeur d'origine ou tu veux qu'elle soit dans un nouveau classeur ne contenant que cette feuille ?

Discussions similaires

  1. ThisWorkbook ActiveSheet Copy
    Par lefevrelaumonier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2012, 18h41
  2. [XL-2000] Copie de Procédure : erreur quand Ligne avec "Sub" vers "ThisWorkbook"
    Par Scoubi7 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/07/2010, 00h59
  3. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 10h42
  4. Copie de fichier
    Par Bjorn dans le forum C
    Réponses: 4
    Dernier message: 11/06/2002, 15h23
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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