Macro pour ouvrir le dernier fichier texte généré...

Christian0258

XLDnaute Accro
Bonsoir à tout le forum,

Je souhaiterais votre aide pour une macro.
J'ai besoin d'ouvrir, rapidement, le dernier fichier TXT (créé par un logiciel ext).
J'utilise cette macro pour ouvrir un TXT bien précis, mais est-il possible de dire à la macro d'ouvrir le dernier fichier TXT généré ?

Sub OuvreTxtP()
Workbooks.OpenText Filename:="C:\Documents and Settings\UCPC_GCR\Mes documents\........txt", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 4))
End Sub

Merci pour votre aide,
Bien amicalement,
Christian
 

skoobi

XLDnaute Barbatruc
Re : Macro pour ouvrir le dernier fichier texte généré...

Bonsoir,

est-ce que le dossier est toujours le même?
quand tu dis le dernier fichier txt, c'est le dernier fichier txt trouvé ("*txt") dans le dossier?
 

Christian0258

XLDnaute Accro
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, Bonsoir le forum, Skoobi,

Le dossier est toujours le même.

Le dernier fichier généré, il y en a plusieurs chaque jour au même nom seul la terminaison change avec l'indication date et heure en terminaison.

Merci pour ton aide,
à+
Christian
 

skoobi

XLDnaute Barbatruc
Re : Macro pour ouvrir le dernier fichier texte généré...

Voici un code à tester, si les fichiers sont tous du même jour, le dernier fichier créé devrait être pris en compte:

Code:
Sub test()
With Application.FileSearch
    .LookIn = "C:\Documents and Settings\UCPC_GCR\Mes documents\"
    .Filename = "*txt"
    .Execute
    If .FoundFiles.Count <> 0 Then
        Workbooks.OpenText Filename:=.FoundFiles(.FoundFiles.Count), _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 4))
    End If
End With

End Sub
 

Christian0258

XLDnaute Accro
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, le forum, Skoobi,

Skoobi, j'ai essayé la macro, rien ne se passe...

Je joins le fichier pour voir.

En fait les fichiers Txt se nomment expl :
20080303_1424_crdupassm.txt Document texte
20080303_1606_crdupassm.txt Document texte
20080303_1628_crdupassm.txt ect ect Document texte
20080303_1628_crdupassm.txt.err Fichier ERR

N.B : il arrive qu'il y est un fichier ERR après création du fichier texte mais pas tout le temps. Ne pas ouvrir ce fichier txt.ERR

Merci pour votre aide,
à+
Christian
 

Pièces jointes

  • EssaiOuvrirDernierTxt.zip
    7.7 KB · Affichages: 32

Christian0258

XLDnaute Accro
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, le forum,

J'ai trouvé le moyen d'avoir rapidement le nom du dernier fichier TXT généré.

Comment modifier la macro, pour que celle-ci fasse référence à la cellule A1, cellule où le collerais le nom du fichier à ouvrir....

Bien amicalement,
à+
Christian
 

MJ13

XLDnaute Barbatruc
Re : Macro pour ouvrir le dernier fichier texte généré...

Bonjour à tous,

J'ai trouvé le moyen d'avoir rapidement le nom du dernier fichier TXT généré

Christian0258, c'est un forum d'entraide, donc ce serait bien de dire comment tu as fait pour avoir rapidement le nom du dernier fichier TXT généré, car cela peut intéresser d'autres personnes du forum.
Je pense que c'est un des points les plus important de ce forum pour que cela fonctionne dans les 2 sens.

Je ne t'en veux pas particulièrement, surtout si tu débutes, mais je remarque cette pratique de plus en plus sur XLD.
 

skoobi

XLDnaute Barbatruc
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, le forum, Skoobi,

Skoobi, j'ai essayé la macro, rien ne se passe...

Je joins le fichier pour voir.

En fait les fichiers Txt se nomment expl :
20080303_1424_crdupassm.txt Document texte
20080303_1606_crdupassm.txt Document texte
20080303_1628_crdupassm.txt ect ect Document texte
20080303_1628_crdupassm.txt.err Fichier ERR

N.B : il arrive qu'il y est un fichier ERR après création du fichier texte mais pas tout le temps. Ne pas ouvrir ce fichier txt.ERR

Merci pour votre aide,
à+
Christian

Re bonjour,
salut MJ13, je suis d'accord avec toi.

Christian,
C'est curieux, vérifie que le chemin dans ".Lookin" est correct.
 

Christian0258

XLDnaute Accro
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, le forum, Skoobi, MJ13,


C'est pas du tout ça, je me suis mal exprimé. J'ai trouvé le moyen en interne, par le logiciel qui génère le fichier, de copier et coller le nom du fichier généré.

Bien évidemment si j'avais trouvé la soluce, j'aurais remis le fichier.

Donc ma question reste d'actualité ; est-il possible dans la macro de Skoobi, de prendre pour référence la cellule A1 dans laquelle je vais coller le nom du fichier à ouvrir.

Merci pour votre aide si précieuse,
à+
Christian
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour ouvrir le dernier fichier texte généré...

Bonsoir Christian, Skoobi, Michel

pas tout suivi, mais le code ci dessous pourra peut être aidé.

Il renvoie le fichier texte le plus récent d'un dossier donné (par rapport à la date de dernière modification) , nom du fichier renvoyé en A1, date de dernière modif en B1, à adapter à ton projet, mettre le nom dans une variable et l'utiliser pour ouverture.

Code:
Option Explicit
Sub RechDerniersFichiers()
Dim MonRepertoire As String,  fso As Object, fs As FileSearch
Dim montableau(), i As Integer, j As Integer, k As Integer, temp
Set fso = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
fs.NewSearch
MonRepertoire = "C:\MesDocuments\Excel"
With fs
    .LookIn = MonRepertoire
    .Filename = "*.txt"
    If .Execute > 0 Then
    ReDim montableau(1 To .FoundFiles.Count, 1 To 2)
        For i = 1 To .FoundFiles.Count
            montableau(i, 1) = .FoundFiles(i)
            montableau(i, 2) = fso.GetFile(.FoundFiles(i)).DateLastModified
        Next i
    End If
End With

For i = LBound(montableau) To UBound(montableau)
    For j = LBound(montableau) To UBound(montableau)
        If montableau(i, 2) > montableau(j, 2) Then
            For k = LBound(montableau, 2) To UBound(montableau, 2)
                temp = montableau(i, k)
                montableau(i, k) = montableau(j, k)
                montableau(j, k) = temp
            Next k
        End If
    Next j
Next i
Cells(1, 1).Value = montableau(1, 1)
Cells(1, 2).Value = montableau(1, 2)
End Sub

bonne soirée
@+
 

Christian0258

XLDnaute Accro
Re : Macro pour ouvrir le dernier fichier texte généré...

Re, Skoobi, Pierrot93,


Merci Pierrot pour ton aide.

Je vais essayé ça demain.

Peux-tu m'expliquer ; "mettre le nom dans une variable et l'utiliser pour ouverture." (suis assez nul en VBA).

Encore merci pour ton aide.
Bien amicalement,
Christian
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 978
Membres
103 417
dernier inscrit
abaabdelghani