Bonjour à tous,
Je voudrais savoir si une personne serait capable de m'aider pour changer le code ci-dessous, ce code permet d'ouvrir un dossier et de modifier plusieurs fichier .txt entre autre en une seule fois . Le but est de l'adapter pour un format excel (car une fois la modification faite je ne peux plus ouvrir le fichier car endommagé) et je n'y arrive pas car mes compétences en VBA sont quasi nulles.
Merci d'avance pour votre aide.
Cordialement
Je voudrais savoir si une personne serait capable de m'aider pour changer le code ci-dessous, ce code permet d'ouvrir un dossier et de modifier plusieurs fichier .txt entre autre en une seule fois . Le but est de l'adapter pour un format excel (car une fois la modification faite je ne peux plus ouvrir le fichier car endommagé) et je n'y arrive pas car mes compétences en VBA sont quasi nulles.
Merci d'avance pour votre aide.
Cordialement
VB:Option Explicit Sub nettoyer() Dim ligne As Integer: Dim colonne As Integer ligne = 8 While (Cells(ligne, 7).Value <> "") For colonne = 10 To 12 Cells(ligne, colonne).Value = "" Next colonne ligne = ligne + 1 Wend End Sub Sub traiter_dossier() Dim nom_dossier As String: Dim fichier As Object Dim le_dossier, chaque_fichier: Dim flux_lecture Dim ligne As Integer: Dim le_fichier As String Dim contenu As String: Dim chercher As String: Dim remplacer As String nom_dossier = Range("B7").Value chercher = Range("B10").Value remplacer = Range("B13").Value ligne = 8 Set fichier = CreateObject("scripting.filesystemobject") Set le_dossier = fichier.getfolder(nom_dossier) Set flux_lecture = CreateObject("ADODB.Stream") flux_lecture.Charset = "utf-8" For Each chaque_fichier In le_dossier.Files le_fichier = nom_dossier & "\" & chaque_fichier.Name contenu = "" flux_lecture.Open flux_lecture.LoadFromFile (le_fichier) contenu = flux_lecture.ReadText() flux_lecture.Close contenu = Replace(contenu, chercher, remplacer) flux_lecture.Open flux_lecture.WriteText contenu flux_lecture.SaveToFile le_fichier, 2 flux_lecture.Close Cells(ligne, 10).Value = chaque_fichier.Name Cells(ligne, 12).Value = "Ok" ligne = ligne + 1 Next chaque_fichier Set flux_lecture = Nothing Set le_dossier = Nothing Set fichier = Nothing End Sub Sub Dossier() Dim bDialogue As Office.FileDialog Dim chDossier As String Set bDialogue = Application.FileDialog(msoFileDialogFolderPicker) bDialogue.Title = "Sélectionner un dossier à parcourir" If bDialogue.Show = -1 Then chDossier = bDialogue.SelectedItems(1) Range("B7").Value = chDossier End If End Sub Sub Demarrer() If (Range("B7").Value = "") Then MsgBox ("Vous devez désigner un dossier à parcourir avec le premier bouton") Exit Sub End If If (Range("B10").Value = "") Then MsgBox ("Vous devez spécifier un terme à remplacer") Exit Sub End If If (Range("B13").Value = "") Then MsgBox ("Vous devez spécifier un terme de remplacement") Exit Sub End If traiter_dossier nettoyer End Sub
Dernière édition: