Ouvrir une copie d'un Workbook "Read-Only", Modifier, Imprimer et Refe
GabrielTurbide
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans un fichier Excel, je voudrais une macro qui vient ouvrir un autre fichier Excel, le modifier et imprimer certaines pages.
Le problème est que le fichier externe à modifier ne peut pas être ouvert en écriture. Il faudrait donc ouvrir une copie, la modifier, imprimer les pages en question et fermer cette copie, sans toucher à l'original. Le fichier modifié n'est plus utile suite à l'impression, alors il est préférable de ne pas l'enregistrer, ou de supprimer la copie après son enregistrement.
De cette manière, je ne peux pas le modifier. J'ai pensé à enregistrer une copie pour ensuite le modifier et supprimer la copie, mais y a-t-il une façon de ne rien enregistrer pour diminuer le temps du code?
Merci d'avance! :)
Gabriel.
Dans un fichier Excel, je voudrais une macro qui vient ouvrir un autre fichier Excel, le modifier et imprimer certaines pages.
Le problème est que le fichier externe à modifier ne peut pas être ouvert en écriture. Il faudrait donc ouvrir une copie, la modifier, imprimer les pages en question et fermer cette copie, sans toucher à l'original. Le fichier modifié n'est plus utile suite à l'impression, alors il est préférable de ne pas l'enregistrer, ou de supprimer la copie après son enregistrement.
Sub Imprimer(NumJob)
Dim app As New Excel.Application
Dim sourceWorkbookPro As Workbook
app.Visible = False
Set sourceWorkbookPro = app.Workbooks.Open("C:\Users\xx.xx\Documents\DocumentACopier.xlsm", 0, ReadOnly:=True)
...
sourceWorkbookPro.Close SaveChanges:=False
app.Quit
Set app = Nothing
End Sub
De cette manière, je ne peux pas le modifier. J'ai pensé à enregistrer une copie pour ensuite le modifier et supprimer la copie, mais y a-t-il une façon de ne rien enregistrer pour diminuer le temps du code?
Merci d'avance! :)
Gabriel.
A voir également:
- Ouvrir une copie d'un Workbook "Read-Only", Modifier, Imprimer et Refe
- Comment ouvrir un fichier epub ? - Guide
- Modifier dns - Guide
- Comment ouvrir un fichier bin ? - Guide
- Modifier liste déroulante excel - Guide
- Copie cachée - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, pourquoi ne peux-tu pas le modifier?
Bonjour,
Exemple :
Note : Il n'est pas vraiment utile d'instancier une itération de Excel ... Dim app As New Excel.Application
si tu est déjà dans un classeur Excel. Selon la syntaxe que tu applique on croirait que tu code en VBS dans le bloc note.
K
Exemple :
Option Explicit ' Public Sub ImprimerV2(NumJob) Dim ClasseurACopier As Workbook Set ClasseurACopier = Workbooks.Open("C:\Document\Dev\Excel_VBA\Calculs.xlsm", 0, ReadOnly:=True) ClasseurACopier.SaveAs ("C:\Document\Dev\Excel_VBA\CalculsCopie.xlsm") ' Traitement du fichier - Modification, Impression, etc ... ' ton code ici ... ClasseurACopier.Close ' Suppression de la copie de travail Kill "C:\Document\Dev\Excel_VBA\CalculsCopie.xlsm" ThisWorkbook.Activate End Sub
Note : Il n'est pas vraiment utile d'instancier une itération de Excel ... Dim app As New Excel.Application
si tu est déjà dans un classeur Excel. Selon la syntaxe que tu applique on croirait que tu code en VBS dans le bloc note.
K