Copie de fichiers

Copie de fichiers - VB/VBA/VBS - Programmation

Marsh Posté le 05-06-2006 à 16:04:50    

Bonjour,
 
Je souhaite faire une copie d'un fichier (sans extension, au format texte avec tabulation) mis à jour par une autre appli dans un répertoire temporaire pour faire ensuite des calculs et courbes.
 
FileCopy ne permet pas de copier le fichier sans extension.
Comment puis je faire ?
 
Sachant aussi que je ne veux pas ouvrir le fichier avec Excel et le sauvegarder.
 
Merci d'avance

Reply

Marsh Posté le 05-06-2006 à 16:04:50   

Reply

Marsh Posté le 06-06-2006 à 02:01:32    

Précise ta demande en étant plus explicite
Faire la copie avec Vb6/VBS/VBA ???  d'un fichier déjà existant ???
ou à partir d'un fichier Excel,Access ??? à sauvegarder en texte tabulé ???
ou de retranscrire en texte tabulé  les données contenues dans un fichier natif  
et là c'est une autre paire de manches


Message édité par kiki29 le 06-06-2006 à 05:39:21
Reply

Marsh Posté le 06-06-2006 à 22:21:33    

Je souhaite faire une copie au sein d'une macro en VBA sous Excel d'un fichier qui existe.
Ce fichier contient des données séparées par tabulation.
La copie sera ensuite exploitée par la macro pour faire différents calculs et graphiques donc peu importe si la copie est dans un autre format (XLS)
Je souhaite faire une copie sans l'ouvrir aussi.
 
Autre question... lorsque j'ouvre le fichier source qui contient des dates, et bizarrement le jour se transforme en mois et le mois en jour...
Par contre j'ai vu que si j'ouvrai le fichier en allant dans données/données externes/importer le fichier texte, j'arrive à avoir le bon format de date...
Est il possible de l'ouvrir de la même manière via une macro VBA ?
 
Merci.

Reply

Marsh Posté le 06-06-2006 à 23:28:11    

Brut de fonderie


Private Sub ImportTxtTabDate()
Dim Source As String, Destination As String
Dim FileNumber As Integer, cpt As Integer
Dim Chaine As String
Dim i As Integer, Pos As Integer, NbCol As Integer
Dim ar() As String
Const Dossier As String = "C:\Transfert"
 
    Source = Dossier & "\" & "Essai.txt"
    Destination = Dossier & "\" & "Essai_Copie.txt"
    FileCopy Source, Destination
     
     
    FileNumber = FreeFile
    Source = Destination
     
    Open Source For Input As #FileNumber
        Line Input #FileNumber, Chaine
        ar() = Split(Chaine, vbTab)
        NbCol = UBound(ar())
    Close #FileNumber
     
    Cells.Clear
     
    cpt = 1
    Open Source For Input As #FileNumber
        Do While Not EOF(FileNumber)
            Line Input #FileNumber, Chaine
            ar() = Split(Chaine, vbTab)
            For i = 0 To NbCol
                Pos = InStr(ar(i), "." )
                If IsNumeric(ar(i)) Then
                    Cells(cpt, i + 1) = CDbl(ar(i))
                ElseIf Pos > 0 Then
                    Cells(cpt, i + 1) = ar(i)
                ElseIf IsDate(ar(i)) Then
                    Cells(cpt, i + 1) = CDate(ar(i))
                End If
            Next
            cpt = cpt + 1
        Loop
    Close #FileNumber
     
    Cells(1, NbCol + 2).Select
End Sub


 
Sinon il reste le macro recorder
fais savoir si c'est ok en mettant [résolu] dans l'entête


Message édité par kiki29 le 07-06-2006 à 13:17:53
Reply

Marsh Posté le 07-06-2006 à 21:04:53    

Merci...
Je n'ai pas encore essayé.. mais déjà le fichier source est sans extension... donc dans ton code  
 
"....
Source = Dossier & "\" & "Essai"
...."
 
Et là.... ça coince.
FileCopy ne trouve pas le fichier.
 
 
Je vais essayer le reste.

Reply

Marsh Posté le 07-06-2006 à 21:56:45    

Il faut que j'adapte un peu en fonction du contenu de mon fichier....
 
Mais la date est bien lue... et la copie fonctionne...
 
Un grand merci
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed