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
rcuprer son nom une fois ouvert afin de le fermer aprs avoir
appliquer le traitement voulu.

Quelqu'un a t'il un bout de macro dans ce genre ? Ou peut on m'aider
raliser 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 slectionn : ") & 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.
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