Macro pour écrir dans des fichiers texte

iStarOSX

XLDnaute Junior
Bonjour à tous.

Voila je cherche à faire une macro Excel, qui permette d’écrire dans des fichiers texte, mais je ne trouve aucune solution sur le net et ne vois pas du tout comment faire.

J'ai un répertoire, dans lequel j'ai un grand nombre de fichiers texte qui portent l'extension ".dvf" et qui sont éditable avec bloc note. Dans tout ces fichiers, je dois ajouter une ligne de texte qui sera identique pour tous ces fichiers texte. il y a plus de 500 fichiers a modifier, donc faire cela a la main me prendra trop de temps et j'aimerai donc avoir une macro pour ajouter cette ligne en début de mes fichiers.

J'aimerai avoir un truc du genre, j'écris dans la cellule A1 le chemin de mon répertoire qui comporte les fichiers a modifier, et en A2 le texte qui devra être insérer dans mes fichiers texte ".dvf" et je lance la macro et tout ce fait automatiquement...

Si un pro de Excel avait la solution, je l'en remercie d'avance.

A bientôt
 

kiki29

XLDnaute Barbatruc
Re : Macro pour écrir dans des fichiers texte

Salut, A lire également Lien supprimé
Extrait :
Ils / elles sont là pour vous aider mais en aucun cas faire votre travail à votre place.
cette recherche est via Gog sur ce forum, sinon FAQ Visual Basic - Rubrique 18 : Fichiers & dossiers sans oublier Fichiers séquentiels

Code:
Option Explicit

Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                             (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long

Const SDossierCorr As String = "DVF Corrigés"

Private Function Chemin(sFichier As String, p As Integer) As String
Dim i As Long
    If Dir$(sFichier) = "" Then Exit Function
    For i = 0 To UBound(Split(sFichier, "\")) - p
        Chemin = Chemin & Split(sFichier, "\")(i) & "\"
    Next i
End Function

Private Sub Correction(sNomFichier As String)
Dim sChaine As String
Dim sCorr As String
Dim iNumFichierIn As Integer, iNumFichierOut As Integer
Dim sNomFichierOut As String, sCheminFichierIn As String

    Close

    sCheminFichierIn = Chemin(sNomFichier, 1)

    CreationDossier Chemin(sNomFichier, 2) & SDossierCorr
    sNomFichierOut = Chemin(sNomFichier, 2) & SDossierCorr & "\" & NomFichier(sNomFichier)

    sCorr = ShDatas.Range("A2")
    iNumFichierIn = FreeFile
    Open sNomFichier For Input As #iNumFichierIn
        iNumFichierOut = FreeFile
        Open sNomFichierOut For Output As #iNumFichierOut
            Print #iNumFichierOut, sCorr
            Do While Not EOF(iNumFichierIn)
                Line Input #iNumFichierIn, sChaine
                Print #iNumFichierOut, sChaine
            Loop
        Close #iNumFichierOut
    Close #iNumFichierIn
End Sub

Private Function CreationDossier(sDossier) As Long
    CreationDossier = SHCreateDirectoryEx(0&, sDossier, 0&)
End Function

Private Function NomFichier(sFichier As String) As String
    With CreateObject("Scripting.FileSystemObject")
        On Error Resume Next
        NomFichier = .GetFileName(sFichier)
        On Error GoTo 0
    End With
End Function

Sub SelFichiers()
Dim FD As FileDialog
Dim i As Long

    ChDir ThisWorkbook.Path & "\"
    Set FD = Application.FileDialog(msoFileDialogFilePicker)
    With FD
        .Filters.Clear
        .Filters.Add "Fichiers DVF (*.dvf)", "*.dvf", 1
        .InitialFileName = "*.dvf"
        .AllowMultiSelect = True
        .ButtonName = "Corriger fichier(s)"
        .Title = "Sélectionner un ou plusieurs fichier(s)"
    End With

    If FD.Show = True Then
        DoEvents
        Application.StatusBar = ""
        For i = 1 To FD.SelectedItems.Count
            Correction FD.SelectedItems(i)
            Application.StatusBar = i & " / " & FD.SelectedItems.Count
        Next i
        Application.StatusBar = Application.StatusBar & "     " & "Correction(s) Terminée(s)"
    End If
    
    Set FD = Nothing
End Sub
 

Pièces jointes

  • Correction DVF.zip
    11.7 KB · Affichages: 21
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Macro pour écrir dans des fichiers texte

Bonjour iStarOSX ,Kiki

Un peu sur le modèle de kiki, voici un exemple, en mettant lers fichiers dans un dossier sur le C:\ (nommé Test) et un autre nommé Test2 qui recevra les fichiers transformés.
 

Pièces jointes

  • Lecture_Ecriture_Fichier_Texte_MJ.xls
    44 KB · Affichages: 57
Dernière édition:

iStarOSX

XLDnaute Junior
Re : Macro pour écrir dans des fichiers texte

Bonjour et Bonne année 2012 à tous les XLDnautes.

Je présente mes excuses à Kiki29 et MJ13 de ne pas les avoir remercier de l'aide qu'il mon fournis sur ce cout la.

J'étais parti en congés début décembre puis avait oublié cette discution. Je m'en suis rappelé aujourd'hui en utilisant vos solutions qui m'ont permis de finir m'on appli en cours.

Donc un grand merci a vous deux et meilleurs voeux 2012.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 328
Membres
103 180
dernier inscrit
Vcr