Bonjour,
Je dispose d'un fichier excel, qui se nomme "fichier1".
Je voudrais, en vba, l'enregistrer sous le nom "test1" sans fermer l'ancien fichier "fichier1".
Est ce que cela est possible?
Merci de votre aide.
Bonjour,
Je dispose d'un fichier excel, qui se nomme "fichier1".
Je voudrais, en vba, l'enregistrer sous le nom "test1" sans fermer l'ancien fichier "fichier1".
Est ce que cela est possible?
Merci de votre aide.
moi je n'y suis pas parvenue.
je rouvre donc mon fichier d'origine, après l'avoir enregistré sous
Bonjour,
lorsque vous ne savez pas comment procéder pour programmer une opération en VBA, espionnez votre EXCEL:
* Ouvrez votre fichier "fichier1"
* Puis dans le menu 'Outils', choisissez le sous-menu 'Macro', puis la commande 'Nouvelle macro'
* l'enregistreur de macro étant démarré, il mémorise toutes les actions que vous faites, et les traduit en langage VBA
* Allez maintenant dans le menu 'Fichier', choisissez la commande 'Enregistrer sous...'
* Dans la boite de dialogue, inscrivez "test1" pour le nom de fichier et validez.
* Arrêtez l'enregistreur de macro, et allez dans l'éditeur VBA, en appuyant par exemple sur la combinaison de touche [Alt] + [F11]
* Vous devez voir un dossier 'Modules' dans la fenêtre de projet.
* Ouvrez celui-ci, vous devriez voir 'Module 1' qui contient la macro générée par EXCEL, qui correspond à la manoeuvre que vous avez fait.
Voila, vous avez le code VBA qui vous permet de faire ce que vous vouliez.
Merci pour cette réponse rtg57 mais cela ne répond pas à ma question.
Je connais le principe de l'enregistreur de macro le pbl n'est pas la.
Ce que je voudrais faire c'est enregistrer mon fichier1 sous le nom test1 sans fermer pour autant le fichier1.
Salut,
le fait d' "enregistrer sous ..." revient à dire que le fichier courant change de nom ; l'objet Workbook est toujours le même mais pas son nom.
Il n'est pas possible de "garder" l'ancien ouvert car c'est toujours l' "ancien".
Il faut donc comme l'a dit turbo_sophie, le réouvrir
En me relisant, je m'aperçois que je ne suis pas très clair.
Lorsque vous faites "enregistrer sous ..." un fichier XL vous créez un nouveau fichier à l'endroit choisi et le fichier courant lui pointe sur ce nouveau fichier.
Mais vous n'opérez pas de fermeture et de réouverture depuis excel. Donc le fichier Excel ouvert est toujours le même.
Bonjour à tous,
Voici un essai par macro (même si ça ressemble un peu à du bidouillage...)Bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub EnregistrerCopie() Dim memPath As String 'enregistrer les modifications apportées au classeur ThisWorkbook.Save 'mémoriser le path du classeur memPath = ThisWorkbook.FullName '"enregistrer sous" le classeur (faire une copie) ThisWorkbook.SaveAs "C:\test.xlsm" 'ouvrir l'ancien classeur (celui d'avant l'"enregistrer sous") Application.Workbooks.Open memPath 'fermer ce classeur (la copie) ThisWorkbook.Close False End Sub
Edit:
Sinon, il y a aussi la méthode .SaveCopyAs qui semble faire la même chose que tout le code précédent.
Bonjour,
ctac
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.SaveCopyAs "LeNomQuiVaBien"
Bonjour,
A partir de lidée de rtg57, pourquoi ne pas enregistrer deux macros, une pour Enregistrer sous puis une pour Ouvrir l'ancien classeur et intégrer le code de la seconde dans celui de la première?
1) mémoriser nom du classeur actuel (éventuellement aussi son chemin)
2) enregistrer sous le nom désiré
3) enregistrer sous le nom mémorisé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 NomClasseurOrigine = ThisWorkbook.Name CheminCourant = ThisWorkbook.Path & "\" ActiveWorkbook.SaveAs "Sauvegarde" ActiveWorkbook.SaveAs CheminCourant & NomClasseurOrigine
Salut beau déterrage de topic (2011) !
sinon il y a
Référence du développeur Excel
Workbook.SaveCopyAs, méthode
Cette méthode enregistre une copie du classeur dans un fichier sans modifier le classeur ouvert en mémoire.
Syntaxe
expression.SaveCopyAs(Filename)
expression Variable qui représente un objet Workbook.
Paramètres
Nom Obligatoire/Facultatif Type de données Description
Filename Facultatif Variante Spécifie le nom de fichier de la copie.
Exemple
Cet exemple montre comment enregistrer une copie du classeur actif.
Visual Basic pour Applications
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager