Fermeture fichiers txt non actifs excel

Signaler
Messages postés
8
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
2 octobre 2011
-
Messages postés
8
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
2 octobre 2011
-
Bonjour,

Le but de ma macro est d'ouvrir plusieurs fichiers txt issus d'un système de radiocommunications et de compiler les infos dans un fichier excel unique afin de les traiter à l'aide d'une macro.
Pour l'ouverture, le choix des fichiers et la compilation je n'ai pas de souci.
La où je coince c'est pour la fermeture des fichiers txt.
Ci-dessous mon code
Sub Ouverture_TXT()
Dim lignefin As Integer

Fichiers = Application.GetOpenFilename("Fichiers Texte (*.txt), *.txt", , , , True)
If IsArray(Fichiers) Then
    For i = LBound(Fichiers, 1) To UBound(Fichiers, 1)
        Workbooks.OpenText Fichiers(i) _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
        TrailingMinusNumbers:=True
        lignefin = ActiveSheet.UsedRange.Rows.Count
        Range("A3:H" & lignefin - 1).Copy
        Windows("Utilisation_postes.xls").Activate
        lignefin = ActiveSheet.UsedRange.Rows.Count
        Range("A" & lignefin + 2).Select
        ActiveSheet.Paste
        Cells.EntireColumn.autofit
    Next i
Else
Exit Sub
End If

End Sub


J'ai essayé de mettre
activewindow.close

après ma commande copy mais je n'arrive pas à forcer la fenêtre qui me demande si je veux garder les donnés de mon presse papier.
J'ai également essayé des choses du type
Fichiers(i).activate
Fichiers(i).close

mais cela ne fonctionne pas.

Si quelqu'un(e) avait une idée à me soumettre ce serait vraiment sympa.

Amicalement

3 réponses

Messages postés
8
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
2 octobre 2011

Re-bonjour,

Je viens de trouver un début de solution
Nomfichier = Mid(fichiers(i), InStrRev(fichiers(i), "") + 1)
        Windows(Nomfichier).Close


La seule chose ou je coince encore est donc de savoir comment répondre automatiquement à la question concernant le presse papier.

Cdlt.
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

Si tu veux faire des copies entre classeurs (Fichier excel et fichier texte), tu peux utiliser l'objet WorkBooks pour switcher entre les classeurs.

Enregistre une macro et regardes.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
8
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
2 octobre 2011

Bonsoir,

En fait en ajoutant "false" en fin de ligne ça le fait, je n'ai plus l'avertissement concernant le presse-papiers

Windows(Nomfichier).Close false



Merci pour le tuyau avec l'objet workbooks.