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 :

Un fichier semble reste ouvert [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Par défaut Un fichier semble reste ouvert
    Bonjour à toutes et à tous,

    Je suis actuellement en train de travailler sur un outils pour mon boulot qui doit ouvrir successivement un certains nombre de fichiers, les traiter, puis les refermer.
    Mon problème est le suivant :
    • Le traitement se fait
    • Je ferme mon classeur
    • Je réouvre mon classeur
    • S'ouvre avec lui le dernier fichier qui avait été traité auparavant

    Bien évidemment je ne veux pas que ce fichier s'ouvre...
    Je pense donc que je me suis emmêlé dans mes fermetures et voici donc mon code (nettoyé des choses inutiles...) :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit
    Dim xlApp As New Excel.Application ' déclarer Public si dans un module
    Dim xlBook As New Excel.Workbook
    Dim xlSheet As New Excel.Worksheet
     
    Sub TraitementPartI() ' Traitement pour la première partie
        Dim Plage As Range
        Dim Fichier As String
        Dim i As Integer
     
        Fichier = Dir(ThisWorkbook.Path & "\Copie*.xls") ' Sélectionne tous les fichiers formulaires
     
        ' Traitement pour chaque fichier - DEBUT
        Do While Len(Fichier) > 0
            Set xlBook = xlApp.Workbooks.Open(ThisWorkbook.Path & "\" & Fichier) ' Ouverture du fichier
            Set xlSheet = xlBook.Sheets("Questionnaire") ' Sélection de la feuille Questionnaire
     
            With xlSheet
     
            '[Blabla inutile ici...]
     
            Fichier = Dir()
     
            xlBook.Close ' Fermeture du fichier
            xlApp.Quit ' Fermeture d'Excel
            Set xlSheet = Nothing
            Set xlBook = Nothing
            Set xlApp = Nothing
        Loop
     
        'Traitement pour chaque fichier - FIN
        MsgBox ("Traitement terminé.")
    End Sub
    En espérant avoir une aide de votre part.
    Cordialement...

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    dans quel évènement lié à quel classeur lances-tu ta sub TraitementPartI ?

    quand tu dis : "Je ferme mon classeur " : duquel parles-tu exactement ?

    EDIT :
    et que fait donc exactement (étape par étape, y compris et surtout si abandon de ta boucle) : ===>> donne un descriptif complet de ce qu'il fait ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     '[Blabla inutile ici...]
    ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Par défaut
    Bonsoir ucfoutu (et les autres),

    Alors je vais essayer de répondre à ta question afin de donner les informations utiles et pertinentes...

    dans quel évènement lié à quel classeur lances-tu ta sub TraitementPartI ?
    Ma Sub se lance via un clic sur un bouton dans un fichier Stats.xls. Ce fichier contient également tout mon code.

    quand tu dis : "Je ferme mon classeur " : duquel parles-tu exactement ?
    Je parle du classeur Stats.xls, car il faut savoir que mon code ouvre/traite/ferme les fichiers sans que rien n'apparaisse à l'écran.

    et que fait donc exactement '[Blabla inutile ici...] ?
    Alors tout d'abord, il n'y a aucun abandon de boucle. Tout ce que ce blabla inutile fait, c'est vérifier si telle cellule contient du texte et, si elle en contient, j'incrémente une variable.
    Ex : Soit la question 1 avec trois choix : 'toto', 'tata', 'titi'.
    A coche toto et B coche tata, alors ma variable Q1R1 vaudra 1 et Q1R2 vaudra également 1 et ma variable Q1R3 vaudra 0.
    Sinon si A et B cochent tout deux titi, alors ma variable Q1R3 vaudra 2 et les autres 0.
    Je ne vois pas quoi dire d'autre si ce passage... Il s'agit de simples conditions qui n'amène à rien d'autre qu'une incrémentation de variables.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Un fichier ne peut s'ouvrir spontanément à l'ouverture de ton classeur !
    Il faut bien que cette ouverture soit demandée à un moment ou l'autre...

    Suggestions :
    - assure-toi que le fichier incriminé est bien fermé lorsque tu quittes ton appli (avant de réouvrir ton classeur stat.xls) . Facile à voir dans la barre des tâches
    - mets en première ligne de ta sub TraitementPartI une msgbox (affichant par exemple "coucou"), pour vérifier qu'elle ne s'affiche pas lors de la réouverture (ce qui voudrait dire qu'elle est appelée depuis ailleurs dans ton code). Recherche alors à l'aide de l'éditeur le mot TraitementPartI
    - fais également une recherche avec le mot Open (juste pour t'assurer de ce que n'existe pas une instruction réouvrant ce fichier depuis ailleurs que ta sub).

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

Discussions similaires

  1. [XL-2010] VBAPROJECT reste ouvert après fermeture du fichier
    Par Oliv- dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2014, 16h01
  2. Le fichier UTL_FILE reste ouvert par Oracle
    Par tomlev dans le forum Oracle
    Réponses: 5
    Dernier message: 04/04/2008, 20h41
  3. Detecter si un Fichier est deja ouvert
    Par Didier Derain dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/02/2005, 19h27
  4. Tester si un fichier X est ouvert
    Par James64 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 06/10/2004, 15h48

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