Fermeture fichiers txt non actifs excel

Scrabblouille Messages postés 8 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 2 octobre 2011 - 2 oct. 2011 à 15:51
Scrabblouille Messages postés 8 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 2 octobre 2011 - 2 oct. 2011 à 22:45
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

Scrabblouille Messages postés 8 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 2 octobre 2011
2 oct. 2011 à 16:14
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.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 oct. 2011 à 18:27
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
0
Scrabblouille Messages postés 8 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 2 octobre 2011
2 oct. 2011 à 22:45
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.
0
Rejoignez-nous