fermer fichier texte définit en variable

Le
dracbi
Bonjour,

Je ne parviens pas à fermer un fichier ".txt" ouvert à partir de vba.
J'aimerais ouvrir n'importe quel fichier texte à partir de vba
récupérer son nom une fois ouvert afin de le fermer après avoir
appliquer le traitement voulu.

Quelqu'un a t'il un bout de macro dans ce genre ? Ou peut on m'aider à
réaliser cela.

Voici mon bout de macro.

Sub XXX()
variableclasseur = ActiveWorkbook.Name
variablefeuille = ActiveSheet.Name


ChDir "C:Documents and Settings"
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
Freenum = FreeFile

Open Fichier For Binary As Freenum
MsgBox (" Voici le nom du fichier sélectionné : ") & Fichier
Range("E2").Value = Fichier


If Freenum <> False Then
Workbooks.OpenText Filename:= _
Fichier, Origin:=xlWindows, StartRow:=1,
DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
Semicolon:= _
False, Comma:=False, 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), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1),
Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
Else: Exit Sub
End If

Close Freenum
Columns("B:B").Select
Range("B1").Activate
Selection.TextToColumns Destination:=Range("B1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False,
FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True

Range("o1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-13]="""","""",MONTH(RC[-13]))"
Range("o1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("p1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-14]="""","""",year(RC[-14]))"
Range("p1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("Q1").Select
ActiveCell.FormulaR1C1 = "=RC[-8]-RC[-7]"
Range("Q1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select


Windows(variableclasseur).Activate

Sheets("COMPTA").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents

Windows("ST.txt").Activate

Cells.Select
Range("A65517").Activate
Selection.Copy
Windows(variableclasseur).Activate
ActiveWindow.WindowState = xlNormal
Sheets("COMPTA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Selection.Columns.AutoFit

End Sub



Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Misange
Le #6990341
bonjour il te suffit de nommer ton fichier au moment ou tu l'ouvres

FichierAOuvrir = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If FichierAOuvrir <> False Then
MsgBox "Open " & FichierAOuvrir

ensuite tu le fermes en l'appelant par son petit nom FichierAOuvrir

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Je ne parviens pas à fermer un fichier ".txt" ouvert à partir de vba.
J'aimerais ouvrir n'importe quel fichier texte à partir de vba
récupérer son nom une fois ouvert afin de le fermer après avoir
appliquer le traitement voulu.

Quelqu'un a t'il un bout de macro dans ce genre ? Ou peut on m'aider à
réaliser cela.

Voici mon bout de macro.

Sub XXX()
variableclasseur = ActiveWorkbook.Name
variablefeuille = ActiveSheet.Name


ChDir "C:Documents and Settings"
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
Freenum = FreeFile

Open Fichier For Binary As Freenum
MsgBox (" Voici le nom du fichier sélectionné : ") & Fichier
Range("E2").Value = Fichier


If Freenum <> False Then
Workbooks.OpenText Filename:= _
Fichier, Origin:=xlWindows, StartRow:=1,
DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:= _
False, Comma:úlse, Space:úlse, Other:úlse,
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), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1),
Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
Else: Exit Sub
End If

Close Freenum
Columns("B:B").Select
Range("B1").Activate
Selection.TextToColumns Destination:=Range("B1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True

Range("o1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-13]="""","""",MONTH(RC[-13]))"
Range("o1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("p1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-14]="""","""",year(RC[-14]))"
Range("p1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("Q1").Select
ActiveCell.FormulaR1C1 = "=RC[-8]-RC[-7]"
Range("Q1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select


Windows(variableclasseur).Activate

Sheets("COMPTA").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents

Windows("ST.txt").Activate

Cells.Select
Range("A65517").Activate
Selection.Copy
Windows(variableclasseur).Activate
ActiveWindow.WindowState = xlNormal
Sheets("COMPTA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Selection.Columns.AutoFit

End Sub



Merci.


Misange
Le #6990331
en plus je suis tellement à la masse que j'avais pas vu que tu as déjà
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
... bon je rentre il est temps de lâcher l'écran !!!

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Je ne parviens pas à fermer un fichier ".txt" ouvert à partir de vba.
J'aimerais ouvrir n'importe quel fichier texte à partir de vba
récupérer son nom une fois ouvert afin de le fermer après avoir
appliquer le traitement voulu.

Quelqu'un a t'il un bout de macro dans ce genre ? Ou peut on m'aider à
réaliser cela.

Voici mon bout de macro.

Sub XXX()
variableclasseur = ActiveWorkbook.Name
variablefeuille = ActiveSheet.Name


ChDir "C:Documents and Settings"
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
Freenum = FreeFile

Open Fichier For Binary As Freenum
MsgBox (" Voici le nom du fichier sélectionné : ") & Fichier
Range("E2").Value = Fichier


If Freenum <> False Then
Workbooks.OpenText Filename:= _
Fichier, Origin:=xlWindows, StartRow:=1,
DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:= _
False, Comma:úlse, Space:úlse, Other:úlse,
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), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1),
Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
Else: Exit Sub
End If

Close Freenum
Columns("B:B").Select
Range("B1").Activate
Selection.TextToColumns Destination:=Range("B1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True

Range("o1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-13]="""","""",MONTH(RC[-13]))"
Range("o1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("p1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-14]="""","""",year(RC[-14]))"
Range("p1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select

Range("Q1").Select
ActiveCell.FormulaR1C1 = "=RC[-8]-RC[-7]"
Range("Q1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Selection.End(xlDown).Select


Windows(variableclasseur).Activate

Sheets("COMPTA").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents

Windows("ST.txt").Activate

Cells.Select
Range("A65517").Activate
Selection.Copy
Windows(variableclasseur).Activate
ActiveWindow.WindowState = xlNormal
Sheets("COMPTA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Selection.Columns.AutoFit

End Sub



Merci.


dracbi
Le #6991201
On 12 juin, 19:57, Misange
en plus je suis tellement à la masse que j'avais pas vu que tu as déj à
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
... bon je rentre il est temps de lâcher l'écran !!!

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !http://xlwiki.f ree.fr/wikihttp://www.excelabo.net




Bonjour,

Je ne parviens pas à fermer un fichier ".txt" ouvert à partir de vba .
J'aimerais ouvrir n'importe quel fichier texte à partir de vba
récupérer son nom une fois ouvert afin de le fermer après avoir
appliquer le traitement voulu.

Quelqu'un a t'il un bout de macro dans ce genre ? Ou peut on m'aider à
réaliser cela.

Voici mon bout de macro.

Sub XXX()
variableclasseur = ActiveWorkbook.Name
variablefeuille = ActiveSheet.Name

ChDir "C:Documents and Settings"
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")
Freenum = FreeFile

Open Fichier For Binary As Freenum
MsgBox (" Voici le nom du fichier sélectionné : ") & Fichier
Range("E2").Value = Fichier

If Freenum <> False Then
Workbooks.OpenText Filename:= _
        Fichier, Origin:=xlWindows, StartRow:=1,
DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab: =True,
Semicolon:= _
        False, Comma:úlse, Space:úlse, Other:úlse,
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), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1),
Array(13, 1), Array(14, 1)), _
        TrailingMinusNumbers:=True
Else: Exit Sub
End If

Close Freenum
Columns("B:B").Select
Range("B1").Activate
    Selection.TextToColumns Destination:=Range("B1"),
DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=F alse,
Tab:=True, _
        Semicolon:úlse, Comma:úlse, Space:úlse, Othe r:úlse,
FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True

Range("o1").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-13]="""","""",MONTH(RC[- 13]))"
    Range("o1").Select
    Selection.Copy
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select

Range("p1").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-14]="""","""",year(RC[-1 4]))"
    Range("p1").Select
    Selection.Copy
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select

Range("Q1").Select
    ActiveCell.FormulaR1C1 = "=RC[-8]-RC[-7]"
    Range("Q1").Select
    Selection.Copy
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select

Windows(variableclasseur).Activate

Sheets("COMPTA").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents

Windows("ST.txt").Activate

Cells.Select
Range("A65517").Activate
Selection.Copy
Windows(variableclasseur).Activate
ActiveWindow.WindowState = xlNormal
Sheets("COMPTA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
        :úlse, Transpose:úlse

Selection.Columns.AutoFit

End Sub

Merci.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Malheuresement cela ne marche pas à prioris
Fichier = Application.GetOpenFilename("Text Files(*.txt), *.txt")....
Lorsque je remplace ceci :

Windows("ST.txt").Activate

Par cela :

Windows(Fichier).Activate

On me renvoie le message suivant :
"Erreur d'exécution 09 - L'indice n'appartient pas à la sélection"

Pourquoi ce message d'erreur ??? Parce que le nom du fichier est
complet ?
Habituellement on a TARTAMPION.txt alors que la variable Fichier
renvoie le chemin complet, soit C:xxxTARTAMPION.txt
Comment faire pour n'avoir que TARTAMPION.txt ?

Merci


Publicité
Poster une réponse
Anonyme