Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1800 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  suppression de fichier impossible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suppression de fichier impossible

n°2302674
tanaka59
Posté le 29-06-2017 à 14:04:24  profilanswer
 

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

mood
Publicité
Posté le 29-06-2017 à 14:04:24  profilanswer
 

n°2302688
patrice337​40
Avec la réponse, c'est facile.
Posté le 29-06-2017 à 17:14:24  profilanswer
 

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
n°2302706
tanaka59
Posté le 29-06-2017 à 20:18:47  profilanswer
 

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:  
 
 
 

n°2302713
patrice337​40
Avec la réponse, c'est facile.
Posté le 29-06-2017 à 23:52:08  profilanswer
 

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
n°2302724
Marc L
Posté le 30-06-2017 à 11:27:09  profilanswer
 

 
            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 …
 

n°2302757
tanaka59
Posté le 30-06-2017 à 23:27:37  profilanswer
 

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 ?
 
 

n°2302763
Marc L
Posté le 01-07-2017 à 13:22:21  profilanswer
 

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

n°2302774
tanaka59
Posté le 03-07-2017 à 11:58:17  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  suppression de fichier impossible

 

Sujets relatifs
Inclusion complète d'un fichierMacro de suppression pour word
[pgsql] ☑ impossible de se connecter avec nouvel utilisateur mise en forme automatique des titres d'un fichier word par un macro v
urgent:parser fichier csv en shAide fichier batch - Automatisatisation requette
Propriété d'un fichier vidéo/audio en vb.netOuvrir un fichier sur java's Cool 4
Export Excel=> TXT avec suppression doublonun fichier d'historique des ping .csv
Plus de sujets relatifs à : suppression de fichier impossible


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR