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 :

Pb d'ouverture de fichier texte par VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 70
    Par défaut Pb d'ouverture de fichier texte par VBA
    Bonsoir,

    J'ai créé un fichier "Stat" et un Fichier "Macros"
    A partir du fichier "Stat", j'ouvre le Fichier "Macros" et je lance différentes macros de mise en forme ou de traitement

    La requête ouvre sous Excel un fichier Texte, le transforme et l'enregistre sous format Excel
    Lorsque je lance la macro du fichier "Stat" une première fois, tout fonctionne correctement.
    Mais lorsque je la relance une fenêtre s'affiche indiquant que mon fichier .txt est en cours d'utilisation par un autre utilisateur (alors qu'il n'est pas ouvert) comme si le programme n'avait pas acté le fait que ce fichier n'est plus actif.

    Cela bloque ma macro et je dois intervenir manuellement pour continuer le traitement.

    Auriez vous une idée pour me permettre de régler ce pb

    Merci pour votre aide

    François

    ci dessous les bouts de codes concernés

    Dans le fichier Stat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    RepStat="c:\temp"
    NomStat="MiseEnForme.xls"
    NvNom="MeF_ProduitsComposes"
     
    Workbooks.Open Filename:=RepStat & "\" & NomStat
    Application.Run NomStat & "!'" & NvNom & "'"
    Et dans le fichier Macros

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    Sub MeF_ProduitsComposes()
     
    On Error GoTo Err_ProduitsComposes
     
     
        Dim RepFic As String
        Dim NomFic As String
     
        RepFic = "Q:\Informatique\Commun\09 - Gestion Commerciale\01-Requetes\FichiersBase\PCS\"
        NomFic = "ProduitsComposes"
     
        If Dir(RepFic & NomFic & ".xls") <> "" Then
            Kill RepFic & NomFic & ".xls"
        End If
     
        ChDir RepFic
        Workbooks.OpenText Filename:= _
            RepFic & NomFic & ".txt" _
            , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
            :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
            False, Comma:=False, Space:=False, Other:=True, OtherChar:="#", _
            FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array _
            (6, 1), Array(7, 1)), DecimalSeparator:=".", TrailingMinusNumbers:=True
     
        ActiveWorkbook.SaveAs Filename:= _
            RepFic & NomFic & ".xls" _
            , FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
        Range("C1").Select
        ActiveCell.FormulaR1C1 = "Compose"
        Range("D1").Select
        ActiveCell.FormulaR1C1 = "Libelle Compose"
        Range("E1").Select
        ActiveCell.FormulaR1C1 = "Composant"
        Range("F1").Select
        ActiveCell.FormulaR1C1 = "Libelle Composant"
        Rows("2:2").Select
        Selection.Delete Shift:=xlUp
     
        i = 2
        While Cells(i, 5) <> ""
            If Cells(i, 3) = "" Then
                Range(Cells(i - 1, 1), Cells(i - 1, 4)).Select
                Selection.Copy
                Cells(i, 1).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            End If
            i = i + 1
        Wend
        ActiveWorkbook.Save
        ActiveWindow.Close
     
        Windows("MiseEnForme.xls").Activate
        Sheets("Macros").Select
     
        Cells(1, 3) = "Ok"
     
    Fin_ProduitsComposes:
        Exit Sub
     
    Err_ProduitsComposes:
        Cells(1, 3) = "NonOk"
        GoTo Fin_ProduitsComposes
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 432
    Par défaut
    Bonjour.
    A tester: en fin de procédure MeF_ProduitsComposes(), ajouter une instruction pour refermer le fichier txt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(NomFic & ".txt").Close
    Bonne continuation.

  3. #3
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Ca semble plutot le classeur "MiseEnForme.xlsm" qui n'a pas ete ferme.
    Essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    RepStat="c:\temp"
    NomStat = "MiseEnForme.xlsm"
    NvNom = "MeF_ProduitsComposes"
     
     On Error Resume Next
     Windows("MiseEnForme.xlsm").Activate
     If Not Err Then
       Workbooks.Open Filename:=RepStat & "\" & NomStat
     End If
     Err.Clear
     
     Application.Run NomStat & "!'" & NvNom & "'"

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Avril 2017
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur VBA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Par défaut
    ou dans macro, finir par un quit.


    ou dans stat finir par un .close du classeur de la macro.

    docMarti a raison, cela permet de faire tourner la macro. Mais je pense que le souci est que la macro reste ouverte à la fin de son traitement.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 70
    Par défaut
    Merci beaucoup pour vos réponses,

    Je vais essayer.

    François

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Gfacro Voir le message
    ou dans macro, finir par un quit.
    Vade Retro.

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

Discussions similaires

  1. [XL-2010] Ouverture d'un fichier Excel par VBA
    Par cameleon1970 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/04/2012, 12h35
  2. [WD-2007] Ouverture d'un .doc comme un fichier archive par VBA
    Par Safra dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/01/2010, 15h56
  3. Ouverture de fichier text
    Par lerouzes dans le forum Langage
    Réponses: 17
    Dernier message: 13/01/2006, 10h48
  4. Ouverture de fichiers excel par ordre alphabetique
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/12/2005, 16h54
  5. [JAR]ouverture de fichier texte depuis executables jar
    Par julien31 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 01/03/2005, 15h53

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