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 :

Ouvrir un fichier CSV par Excel puis le sauver en XLS mais ensuite Excel reste en mémoire [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 37
    Par défaut Ouvrir un fichier CSV par Excel puis le sauver en XLS mais ensuite Excel reste en mémoire
    J'ouvre un fichier CSV avec Excel, je le sauvegarde ensuite en XLS.
    Je ferme l'Excel mais l'objet Excel reste en mémoire et du coup je ne peux plus supprimer le CSV (DeleteFile renvois une erreur 70 et on voit bien l'objet Excel qui reste en mémoire malgré le Nothing)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Set AppExcel = New Excel.Application
    With AppExcel
        .Workbooks.Open NomFichierExportAvecCheminCSV, ReadOnly:=True, Delimiter:=";", Local:=True
        .Visible = False
    End With
    With AppExcel.Workbooks(NomFichierExportCSV).Worksheets(1).Cells
        .Rows("1:1").AutoFilter
        .EntireColumn.AutoFit
    If TrierCroissant Then
        .Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
    End If
    End With
    AppExcel.Workbooks(NomFichierExportCSV).Worksheets(1).Name = NomFeuille
    AppExcel.Workbooks(NomFichierExportCSV).SaveAs Filename:=NomFichierExportAvecChemin, FileFormat:=xlExcel9795, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False, Local:=True
    AppExcel.Workbooks(NomFichierExport).Close savechanges:=False
    Set AppExcel = Nothing
    ' Plantage sur le DeleteFile 
    FSO.DeleteFile (NomFichierExportAvecCheminCSV)

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut





    Comme déjà indiqué dans ta précédente discussion, il est vraiment tout à fait inutile d'ouvrir une autre instance d'Excel ‼



  3. #3
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 37
    Par défaut
    Oui peut-être, je ne connais pas la méthode sans le faire dans l'instance courante d'Excel, mais en tout cas il reste bien un soucis sur mon fichier CSV qui est encore en mémoire ...

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    La méthode reste la même : Workbooks.Open

    Sinon activer le Générateur de macros puis ouvrir le fichier, créer le filtre, etc …
    Et hop ! Une nouvelle base de code est livrée sur un plateau !

  5. #5
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 37
    Par défaut
    Oui j'ai trouvé en cherchant 2 min

    Mais mon problème reste le même qu'il reste un lien ouvert sur le fichier CVS qui a pourtant été sauvegardé en XLS qui m’empêche de le supprimer, ce lien est détruit lorsque la macro a fini de s’exécuter...

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Sans voir le code … je dirais d'en changer et de ne pas utiliser les méthodes d'Excel mais le pur BASIC !

    Voir l'exemple de l'instruction Line Input # dans l'aide VBA pour lire le fichier texte

    à combiner avec la fonction Split pour séparer les données …

    Ce que je ne comprends pas vu la précédente discussion est de partir d'un classeur Excel pour le transformer en fichier texte
    pour ensuite re-transformer ce fichier texte en classeur ! Autant lire le classeur source directement …

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir un fichier video par une macro excel
    Par cott333 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/05/2013, 14h11
  2. Ouvrir un fichier CSV/Excel en J2EE/Servlet
    Par molarisapa dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 30/03/2011, 16h59
  3. Ouvrir un fichier csv dans excel
    Par judavid dans le forum VBScript
    Réponses: 5
    Dernier message: 17/03/2009, 19h01
  4. Ouvrir un fichier csv dans excel via access
    Par NELAIN dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/02/2009, 15h15
  5. VBScript : Créer puis ouvrir un fichier csv
    Par Stephbzh dans le forum VBScript
    Réponses: 1
    Dernier message: 04/06/2008, 09h36

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