suppression de fichier impossible

suppression de fichier impossible - VB/VBA/VBS - Programmation

Marsh Posté le 29-06-2017 à 14:04:24    

Bonjour ,  
 
Le code suivant me permet de créer un fichier grâce à un bout de code en vbe :
 

Code :
  1. Public Sub pgm_general()
  2. ' variable texte
  3. Dim file1 As String
  4. Dim file2 As String
  5. Dim repertoire As String
  6. Dim extension As String
  7. Dim file_ext As String
  8. Dim all_link As String
  9. Dim leaf1 As String
  10. Dim leaf2 As String
  11. ' numerique
  12. Dim i As Integer
  13. Dim j As Integer
  14. Dim k As Integer
  15. ' application excel
  16. Dim xlApp As Excel.Application
  17. Dim xlBook As Excel.Workbook
  18. Dim xlSheet As Excel.Worksheet
  19. ' formalisation des liens pour le fichier
  20. repertoire = "D:\"
  21. extension = "xlsx"
  22. file1 = "test_excel"
  23. file_ext = file1 & "." & extension
  24. all_link = repertoire & file_ext
  25. ' creation de classeur excel
  26.    Set xlApp = CreateObject("Excel.Application" ) ' creation application excel
  27.    xlApp.SheetsInNewWorkbook = 1
  28.    Set xlBook = xlApp.Workbooks.Add
  29.    xlBook.SaveAs (all_link)
  30.    xlApp.Visible = False
  31.    Workbooks.Open Filename:=all_link
  32.    Set xlBook = xlApp.Workbooks.Add
  33.    xlApp.Visible = False
  34.    Set xlSheet = xlBook.Worksheets(1)
  35.    xlSheet.Name = "onglet1"
  36.    Application.DisplayAlerts = False
  37.    'xlApp.Quit
  38.    'Set xlSheet = Nothing
  39.    'Set xlBook = Nothing
  40.    'Set xlApp = Nothing
  41.    
  42.    Workbooks(file_ext).Save
  43.    Workbooks(file_ext).Close
  44.    
  45. End Sub


 
Mon code vbe se trouve dans un fichier XLSM et est placé dans un module .  
 
Quand le programme est terminé , le fichier "test_excel.xlsx" n'est pas supprimable . Le fichier est utilisé par un autre programme . Dans le gestionnaire des taches , la tache de "test_excel.xlsx" est toujours active.  
 
Quelle instruction dois je ajouter pour que la fermeture soit totale ?
 
Merci de l'aiguillage ;)
 
Une image sera plus parlante qu'un long discours :
 
http://nsa37.casimages.com/img/2017/06/29/170629022523813898.png

Reply

Marsh Posté le 29-06-2017 à 14:04:24   

Reply

Marsh Posté le 29-06-2017 à 17:14:24    

Pourquoi faire simple quand on peut tout compliquer !
 
Pourquoi créer un fichier dans une autre instance d'Excel pour ensuite l'ouvrir dans l'instance courante (sans fermer l'autre instance !)


---------------
Cordialement, Patrice
Reply

Marsh Posté le 29-06-2017 à 20:18:47    

Bonsoir
 

Citation :

Pourquoi créer un fichier dans une autre instance d'Excel

 
 
Comme expliqué , je suis dans le fichier Excel A qui est un xlsm , je crée un fichier B xlsx depuis le fichier A . Rien de bien sorcier ...
 

Citation :

pour ensuite l'ouvrir dans l'instance courante (sans fermer l'autre instance !)


 
Dans mon cas présent je ne cherche pas à ouvrir le fichier , simplement à le crée ... vu que l'ouverture ne me sert à rien.  
 
Le but de la manœuvre ici est de crée un fichier B à partir d'un fichier A rien de plus simple . Je ne vois pas d'ou sortent ces histoires d'instance , d'ouvertures dans le fichier courant ??? !!!  :heink:  
 
 
 

Reply

Marsh Posté le 29-06-2017 à 23:52:08    

Re,
 
Pour faire simple :

Code :
  1. Public Sub pgm_general()
  2. Dim file As String
  3. Dim xlBook As Excel.Workbook
  4.     Application.ScreenUpdating = False
  5.     file = "D:\test_excel.xlsx"
  6.     Set xlBook = Workbooks.Add(xlWBATWorksheet)
  7.     xlBook.Worksheets(1).Name = "onglet1"
  8.     xlBook.SaveAs (file)
  9.     xlBook.Close
  10.     Application.ScreenUpdating = True
  11. End Sub


EDIT :
Ma question n'est pas «Pourquoi créer un Fichier ? » mais « Pourquoi créer un fichier dans une autre instance pour ... » i.e. pourquoi :

Code :
  1. Set xlApp = CreateObject("Excel.Application" ) ' creation application excel


« ... pour ensuite l'ouvrir dans l'instance courante ? » i.e. :

Code :
  1. Workbooks.Open Filename:=all_link


 
 


Message édité par patrice33740 le 30-06-2017 à 08:13:02

---------------
Cordialement, Patrice
Reply

Marsh Posté le 30-06-2017 à 11:27:09    

 
            Bonjour !
 
            Du même avis de Patrice, aucun intérêt d'ouvrir un second Excel à part gâcher de la mémoire et compliquer le code ‼
 
            Donc code à revoir et à simplifier, Excel pouvant ouvrir plusieurs classeurs dans une seule session …
 

Reply

Marsh Posté le 30-06-2017 à 23:27:37    

Bonsoir
 
[quote="Marc L"]Du même avis de Patrice, aucun intérêt d'ouvrir un second Excel à part gâcher de la mémoire et compliquer le code ‼[/quote]
 
Dans mon code de départ à quoi puis je voir que j'ai ouvert une seconde instance excel ?
 
 

Reply

Marsh Posté le 01-07-2017 à 13:22:21    

 
            C'est une blague ?   C'est même indiqué en commentaire ‼  :sarcastic:  
 

Reply

Marsh Posté le 03-07-2017 à 11:58:17    

Bonjour,  
 
Après plusieurs j'arrive bien à créer le fichier xlsx. Celui ci est bien libéré et peut être manipulé sans restriction une fois le programme VBE fini.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed